BackgroundWorker 控件的已完成事件是否会在 GUI 线程上返回,或者我是否必须将其封送回来。
此外,进度事件是否会在 GUI 线程上返回,或者我是否必须将其编组?
BackgroundWorker 控件的已完成事件是否会在 GUI 线程上返回,或者我是否必须将其封送回来。
此外,进度事件是否会在 GUI 线程上返回,或者我是否必须将其编组?
这两个事件都将被编组到 UI 线程上。
所有事件都将在创建 BackgroundWorker 实例的线程上返回。您的客户所要做的就是监听事件。
您可能来过这里,但另请参阅:BackgroundWorker 事件
它将在发起操作的 UI 线程上引发。在后台,BackgroundWorker 使用SynchronizationContext在两个线程之间进行封送处理。WPF 和 WinForms 都会在启动时安装适当的 SynchronizationContext。
如果 BackgroundWorker 是从 UI 线程创建的,那么这两个事件也将在 UI 线程上引发。
如果它是从后台线程创建的,则该事件将在未定义的后台线程上引发。
有关更多信息,请参阅此帖子和此连接问题。