多线程

ThreadPool与Task

ThreadPool很难控制线程执行顺序,无法知道线程执行完成,Task弥补这些缺点。

使用CancelTokenSource通知子线程。

async task await C#异步编程模型

一个方法被标记为async,编译器会将方法的代码转换成实现了状态机的一个类型,允许线程执行状态机中的一些代码并返回,方法不需要一直执行到结束。

异步方法返回的是Task对象。

await一个方法,实际是调用方法的GetAwaiter,查询其IsCompleted,如果操作完成,返回true。

不要使用Thread.Sleep,它会阻塞一个线程,阻塞一个线程,会造成更多的线程被创建。

原文地址:https://www.cnblogs.com/pangtouxiaoc/p/13253980.html