异步使用场景(笔记)

根据工作实际需求做一个笔记。

现在有三个接口 A>B>C,A和C是我们的,B是别人的,现在有个要求,某一些用户访问B的时候需要等待一些时间,一开始想的是直接用Thread.splee(xxx)来进行等待。但是这样容易造成阻塞。

后来我就想把需要等待的都丢带一个队列里面Queue里面去,然后写一个线程去定时遍历这个队列,这样就不会阻塞了。又后来,我看到了别人给我的提示await Task.Delay(xxx);,我就想到异步,异步不就是来针对这种情况的嘛,真的是,之前看了那么多关于异步的知识,到用的时候就想不起来。后来我就新建一个异步方法,然后把需要等待的用户就调用这个异步方法,也不用担心异步线程过多,因为异步是基于线程池的,线程池机制是当达到最大线程数量的时候多余的线程会呈现排队状态,跟队列是一样的。

下面写了个简单的调用过程用作笔记:

static void Main(string[] args)
        {
            Console.WriteLine("我是同步方法1");
            test();
            Console.WriteLine("我是同步方法2");
            Thread.Sleep(5000);
}
  public async static Task testc()
        {
            await Task.Delay(3000);//3s
            Console.WriteLine("我是异步方法");
        }
        static async void test()
        {
            await testc();
        }

再多说一句,我为什么会想到队列而没想到异步,是因为前面好多操作都是用队列操作的,异步几乎没用到。后来项目里面有个地方需要使用到线程池去了解了一下异步,看来多看还是不行,需要多操作才能有效果。笔记!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值