您的位置:首页 > 汽车 > 时评 > 东莞室内设计培训_成都住建官网app_什么是电商_商业推广费用一般多少

东莞室内设计培训_成都住建官网app_什么是电商_商业推广费用一般多少

2025/3/18 2:08:29 来源:https://blog.csdn.net/m0_46635910/article/details/144591692  浏览:    关键词:东莞室内设计培训_成都住建官网app_什么是电商_商业推广费用一般多少
东莞室内设计培训_成都住建官网app_什么是电商_商业推广费用一般多少

目录

1、什么是异步编程?

2、怎么取消异步?

3、WhenAny()和WhenAll()的区别

4、异常,OpretorExcepssion和InterruptExcepssion

5、异步的超时取消CancelAfter

6、异步任务之间通信

7、异步编程中使用同步机制

8、在使用异步编程时,需要注意的地方:

9、异步编程与多线程的区别和适用场景:

10、简单的实现异步的方法


1、什么是异步编程?

用async作为关键字

异步编程具有传染性

Task:包含了异步任务的各种状态的一个引用类型。运行状态,结果,报错等。

2、怎么取消异步?

  • CancellationTokenSource
static readonly CancellationTokenSource cts = new CancellationTokenSource();
cts.Cancel();// 异步的超时取消 可以用下面这两种方式实现
// 1.在初始化时直接赋值TimeSpen
CancellationTokenSource cts = new CancellationTokenSource(3000);   
// 2.调用CancelAfter()
cts.CancelAfter(3000);

3、WhenAny()和WhenAll()的区别

相同点:

都是用TaskList作为参数

不同点:

返回值不同,WhenAny()返回的是已经执行完成的Task,WhenAll()返回的是所有Task的结果的集合

返回次数不同,WhenAny()在每次有任务结束时都会返回一次,WhenAll()只会在所有的任务结束后才会返回一次

4、异常,OpretorExcepssion和InterruptExcepssion

5、异步的超时取消CancelAfter

cts = new CancellationTokenSource(3000);

cts.CancelAfter(3000);

6、异步任务之间通信

线程间通信:

channal 相当于一个自带信号量的ConcurrentQueue(线程安全的队列)

7、异步编程中使用同步机制

  • TaskCompletionSource 单次使用

  • SemaphoreSlim 重复使用

8、在使用异步编程时,需要注意的地方:

  • 异步编程最主要的就是不阻塞,所以要尽量避免阻塞的情况发生,
  • 异步方法通常需要传递,具有依赖性

9、异步编程与多线程的区别和适用场景:

10、简单的实现异步的方法

// 这是一个普通的方法
Public string DoSomething()
{Thread.Sleep(3000);return "this is a test";
}Void Main()
{// 将DoSomething方法改成异步调用var result =  await Task.Run(()=>DoSomething());}


 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com