簡體   English   中英

BackgroundWorker 完成事件 - 哪個線程?

[英]BackgroundWorker completed event - which thread?

BackgroundWorker 控件的已完成事件是否會在 GUI 線程上返回,或者我是否必須將其封送回來。

此外,進度事件是否會在 GUI 線程上返回,或者我是否必須將其編組?

這兩個事件都將被編組到 UI 線程上。

所有事件都將在創建 BackgroundWorker 實例的線程上返回。 您的客戶所要做的就是監聽事件。

您可能來過這里,但另請參閱: BackgroundWorker 事件

它將在發起操作的 UI 線程上引發。 在后台,BackgroundWorker 使用SynchronizationContext在兩個線程之間進行封送處理。 WPF 和 WinForms 都將在啟動時安裝適當的 SynchronizationContext。

如果 BackgroundWorker 是從 UI 線程創建的,那么這兩個事件也將在 UI 線程上引發。

如果它是從后台線程創建的,則該事件將在未定義的后台線程上引發。

有關更多信息,請參閱此帖子和此連接問題。

https://stackoverflow.com/a/2806824/279999

http://connect.microsoft.com/VisualStudio/feedback/details/116930/backgroundworker-components-progresschanged-and-runworkercompleted-event-run-on-wrong-thread

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM