我有2個線程調用「Task.Factory.StartNew」。我們只要說一個線程(ThreadA)比另一個線程(ThreadB)略高一點。Task.Factory.StartNew保證執行順序
...在線程A,稍微提前調用
Task.Run(() => {
SomeMethodInThreadA();
});
...在線程B,後來
Task.Run(() => {
SomeMethodInThreadB();
});
是否的TaskScheduler保證SomeMethodInThreadA被執行略有調用首先在SomeMethodInThreadB?
如果不是,我該怎麼做?使用Task.Factory.StartNew並傳入特殊的TaskScheduler?
此外,除了低保SomeMethodInThreadA首先得到處理,我也想先執行SomeMethodInThreadB前確保SomeMethodInThreadA完成。
我已經看過使用StaTaskScheduler,但我不確定這是否是解決方案。
編輯:
,不會產生約我繼承的程序太多細節/電視劇,我想我在找的是一個自定義的TaskScheduler其中:
榮譽序列時該委託被排隊
執行它們串聯
做在同一個線程,類似於我上面
請勿使用StartNew http://blog.stephencleary.com/2013/08/startnew-is-dangerous。HTML,除非你真的使用不同的調度器(我可能不會推薦) –
嗯,我有點需要,因爲我不知何故需要一個特殊的TaskScheduler,類似於StaTaskScheduler試圖做的。 – alpinescrambler
我覺得你正在解決*錯誤*的問題。 –