HTML5技术

用惯了Task,你应该也需要了解它的内部调度机制TaskScheduler - 一线码农(2)

字号+ 作者:H5之家 来源:H5之家 2017-04-29 10:01 我要评论( )

1 namespace ConsoleApplication1 2 { 3 class Program 4 { Main( string [] args) 6 { 7 var task = Task.Factory.StartNew(() = 8 { ); 10 }, new CancellationToken(), TaskCreationOptions.None, new PerThread

1 namespace ConsoleApplication1 2 { 3 class Program 4 { Main(string[] args) 6 { 7 var task = Task.Factory.StartNew(() => 8 { ); 10 }, new CancellationToken(), TaskCreationOptions.None, new PerThreadTaskScheduler()); 11 12 Console.Read(); 13 } 14 } 每个Task一个Thread PerThreadTaskScheduler : TaskScheduler 20 { IEnumerable<Task> GetScheduledTasks() 22 { ; 24 } QueueTask(Task task) 27 { 28 var thread = new Thread(() => 29 { 30 TryExecuteTask(task); 31 }); 32 33 thread.Start(); 34 } TryExecuteTaskInline(Task task, bool taskWasPreviouslyQueued) 37 { NotImplementedException(); 39 } 40 } 41 }

 

  看到没有,自定义Task就是这么简单,其实自定义操作中最重要的就是其中的QueueTask方法,接下来我可以用windbg观察一下,确实是工作线程,而不是

线程池,没骗你~~~

 

好了,本篇就说到这里,希望对你有帮助。

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 【大前端之打通账号系统】passport应该如何落地? - 叶小钗

    【大前端之打通账号系统】passport应该如何落地? - 叶小钗

    2016-07-27 10:00

  • 小公司的前端应该怎么做? - 叶小钗

    小公司的前端应该怎么做? - 叶小钗

    2016-05-15 18:00

  • 一个优秀的程序员应该如何提高工作效率? - cherry0327

    一个优秀的程序员应该如何提高工作效率? - cherry0327

    2016-04-16 18:00

  • 面试感悟----一名3年工作经验的程序员应该具备的技能 - 五月的仓颉

    面试感悟----一名3年工作经验的程序员应该具备的技能 - 五月的仓颉

    2016-03-12 17:00

网友点评
g