平時我們在用多線程開發(fā)的時候少不了Task,確實(shí)task給我們帶來了巨大的編程效率,在Task底層有一個TaskScheduler,它決定了task該如何被調(diào)度,而
在.net framework中有兩種系統(tǒng)定義Scheduler,第一個是Task默認(rèn)的ThreadPoolTaskScheduler,還是一種就是SynchronizationContextTaskScheduler,
以及這兩種類型之外的如何自定義,這篇剛好和大家分享一下。
一: ThreadPoolTaskScheduler
這種scheduler機(jī)制是task的默認(rèn)機(jī)制,而且從名字上也可以看到它是一種委托到ThreadPool的機(jī)制,剛好也從側(cè)面說明task是基于ThreadPool基礎(chǔ)上的
封裝,如果想具體查看代碼邏輯,你可以通過ILSpy反編譯一下代碼看看:
1 protected internal override void QueueTask(Task task) 2 { 3 if ((task.Options