C# 异步

先说需求,在后台有一些操作,当后台进行完某个操作的时候,给所有的用户发送推送通知,也是挺正常一需求,可是难就难在给所有的用户发通知,用户数量少的时候还好,用户数量多的情况下,可能发送推送消息的效率就会慢一些。展示到页面上就是一直在转圈圈。那么如何解决这个问题呢?

思路:如果能后台操作数据库完成,直接给用户反馈,而发送推送消息的操作呢,就放到另一个线程里慢慢执行好了,不管他。

来了解下await和async
await是一个运算符,表示等待异步处理的结果,
async是一个修饰符,它只能用在方法或者事件处理程序的签名中。
先简单了解下,详情请参考这篇文章https://www.cnblogs.com/fangyz/p/5134018.html

接来下看代码。

using System;
using System.Threading;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            ThreadTest test = new ThreadTest();
            test.Func1();
            Console.WriteLine("这里是返回结果");
           
        }
    }
    class ThreadTest
    {
        public async Task Func1()
        {
            await Task.Run(() =>
            {
                for (int i = 0; i < 9999; i++)
                {
                    if (i == 9998)
                    {
                        Console.WriteLine("这里是耗时的方法");
                    }
                }
            });
        }
    }
}

这就是一个简单的控制台应用程序,当我们在Main函数里面时,需要调用一个异步的方法,ThreadTest这个方法里面就可以放一些推送消息的操作,我不需要返回值,所以直接实例化后调用方法即可。Main函数的其他地方,就可以继续写我们的一些业务逻辑,最后来个图。

6375263-0463c5db3dd4cc58.png
image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李公子lm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值