12.从Thread引入Task

以下内容来自B站老杨

并发:concurrency

而Thread带来的问题或者说是限制都可以由新的Task类进行解决。

Task.Run相当于是Task.Factory.StartNew的简化版本。

 例子:

 输出:

可以看到什么都没输出来。

这是因为:Task使用的是线程池,使用的是后台线程,主线程结束后,后台线程也结束了,所以还没等Task中的委托打印就已经结束程序了。

如果要打印出来的话就要在主线程增加阻塞。

 

 “热”任务也就是创建了就开始执行。

 

 

 

 针对长时间运行的任务可以采用这种方式,短时间运行的CPU-Bound任务一般是前面指的运行时长250us(微秒),理想状况100us以内的任务。

 CPU-Bound这部分需要额外看书了解。

原文地址:https://www.cnblogs.com/LeeSki/p/14306300.html