BackgroundWorker控件的已完成事件是否会返回到GUI线程上,或者我是否必须将其重新编组。
此外,进度事件是否会返回到GUI线程上,还是我必须将其封回?
答案 0 :(得分:5)
两个事件都将被编组到UI线程上。
答案 1 :(得分:3)
所有事件都将在创建BackgroundWorker实例的线程上返回。您的客户所要做的就是倾听这一事件。
你可能来过这里,但另见:BackgroundWorker Events
答案 2 :(得分:3)
它将在发起操作的UI线程上引发。在幕后,BackgroundWorker使用SynchronizationContext在两个线程之间进行编组。 WPF和WinForms都将在启动时安装适当的SynchronizationContext。
答案 3 :(得分:2)
如果BackgroundWorker是从UI线程创建的,那么这两个事件也将在UI线程上引发。
如果它是从后台线程创建的,则会在未定义的后台线程上引发该事件。
有关详细信息,请参阅此帖子和此连接问题。