Dispatcher.CurrentDispatcher(in System.Windows.Threading)和Application.Current.Dispatcher(in System.Windows)之間有什么區(qū)別?我的直覺告訴我,它Application.Current.Dispatcher永遠不會改變,并且對當(dāng)前應(yīng)用程序中的所有線程都是全局的,同時Dispatcher.CurrentDispatcher可能會Dispatcher根據(jù)調(diào)用它的線程創(chuàng)建一個新實例。那是對的嗎?如果是這樣,Dispatcher.CurrentDispatcher主要是為了多線程UI 的目的嗎?
3 回答

鳳凰求蠱
TA貢獻1825條經(jīng)驗 獲得超4個贊
我的直覺告訴我Application.Current.Dispatcher永遠不會更改,并且對于當(dāng)前應(yīng)用程序中的所有線程都是全局的,而Dispatcher.CurrentDispatcher可能會根據(jù)調(diào)用它的線程來創(chuàng)建Dispatcher的新實例。
沒錯,這Application.Current.Dispatcher
是應(yīng)用程序的實例屬性,該屬性在構(gòu)造時被分配為當(dāng)前線程的調(diào)度程序。并且作為文檔Dispatcher.CurrentDispatcher
指出:
獲取當(dāng)前正在執(zhí)行的線程的Dispatcher,如果尚未與該線程關(guān)聯(lián),則創(chuàng)建一個新的Dispatcher。
如果是這樣,Dispatcher.CurrentDispatcher的目的主要是針對多線程UI嗎?
可能地,我在獲取后臺線程的分派器時沒有遇到任何用處,因為您通常沒有屬于您的UI元素,您可能希望向其分配操作。
- 3 回答
- 0 關(guān)注
- 1363 瀏覽
添加回答
舉報
0/150
提交
取消