第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

BackgroundWorker RunWorkerCompleted事件

BackgroundWorker RunWorkerCompleted事件

暮色呼如 2019-09-26 11:03:53
我的C#應(yīng)用程序有幾個(gè)后臺(tái)工作人員。有時(shí),一名后臺(tái)工作者會(huì)解雇另一名。當(dāng)?shù)谝粋€(gè)后臺(tái)工作人員完成并且RunWorkerCompleted事件被觸發(fā)時(shí),該事件將在哪個(gè)線程上觸發(fā),UI或從哪個(gè)線程RunWorkerAsync調(diào)用?我正在使用Microsoft Visual C#2008 Express Edition。您可能有任何想法或建議。謝謝。
查看完整描述

3 回答

?
動(dòng)漫人物

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊

如果BackgroundWorker是從UI線程創(chuàng)建的,則RunWorkerCompleted事件還將在UI線程上引發(fā)。

如果是從后臺(tái)線程創(chuàng)建的,則事件將在未定義的后臺(tái)線程上引發(fā)(不一定是同一線程,除非您使用custom SynchronizationContext)。

有趣的是,這似乎并沒(méi)有在MSDN上得到充分記錄。我能夠找到的最佳參考是在這里

在您的應(yīng)用程序中實(shí)現(xiàn)多線程的首選方法是使用BackgroundWorker組件。的BackgroundWorker的組件使用多線程的事件驅(qū)動(dòng)模型。后臺(tái)線程運(yùn)行您的DoWork事件處理程序,而創(chuàng)建控件的線程運(yùn)行您的ProgressChangedRunWorkerCompleted事件處理程序。您可以從ProgressChangedRunWorkerCompleted事件處理程序中調(diào)用控件。


查看完整回答
反對(duì) 回復(fù) 2019-09-26
?
慕容森

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊

這是不對(duì)的。如果UI線程創(chuàng)建了BGW實(shí)例,它將僅在UI線程上引發(fā)。如果線程創(chuàng)建了BGW,則它將在任意線程池線程上引發(fā)。 

查看完整回答
反對(duì) 回復(fù) 2019-09-26
?
慕容3067478

TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊

另外,我們也感到困惑,因?yàn)槟€必須從主線程調(diào)用RunWorkerAsync。那是最重要的。我們有一個(gè)計(jì)時(shí)器來(lái)收集BGW并將其啟動(dòng)。System.Timers.Timer和System.Windows.Forms.Timer之間的區(qū)別是從主線程和隨機(jī)線程調(diào)用的OnWorkerCompleted之間的區(qū)別。System.Timers.Timer事件不會(huì)在主線程上調(diào)用。

查看完整回答
反對(duì) 回復(fù) 2019-09-26
  • 3 回答
  • 0 關(guān)注
  • 1140 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)