Task

.NET4.0 后微软推荐的异步计算类型

为什么需要Task

  • Thread 带来每次实例化,释放带来时空开销,使用不当导致线程过多,时间片切换。
  • ThreadPool 控制能力弱(如thread的阻塞,取消,超时等由CLR控制Thread,不是开发者)

Task像是一个Thread,Task是在ThreadPool,Thread基础上的封装

Task启动

  • New
  • TaskFactory
  • Task.Run
  • New ,RunSynchronously(同步执行任务)

ThreadPoolTaskScheduler

带返回值的Task,Task<Result>

阻塞/延续

  1. Thread.Join
  2. Task.Wait
  3. Task.WaitAll,Task.WaitAny
  4. Task.Continue,Task.WhenAll.Continue,Task.WhenAny.Continue
  5. Task.Factory.ContinueWhenAll,Task.Factory.ContinueWhenAny
posted @ 2019-09-18 11:37  vvf  阅读(324)  评论(0)    收藏  举报