Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# BackgroundWorker已完成事件-哪个线程?_C#_Multithreading_Background - Fatal编程技术网

C# BackgroundWorker已完成事件-哪个线程?

C# BackgroundWorker已完成事件-哪个线程?,c#,multithreading,background,C#,Multithreading,Background,BackgroundWorker控件的已完成事件是否返回GUI线程,或者我是否必须将其封送回来 另外,进度事件是否会返回到GUI线程上,还是我必须将其封送回来?这两个事件都将被封送到UI线程上。所有事件都将返回到创建BackgroundWorker实例的线程上。你的客户所要做的就是监听事件 您可能已经到过这里,但请参见:它将在发起该操作的UI线程上引发。在引擎盖下,BackgroundWorker使用一个用于在两个线程之间封送的方法。WPF和WinForms都将在启动时安装适当的Synchron

BackgroundWorker控件的已完成事件是否返回GUI线程,或者我是否必须将其封送回来


另外,进度事件是否会返回到GUI线程上,还是我必须将其封送回来?

这两个事件都将被封送到UI线程上。

所有事件都将返回到创建BackgroundWorker实例的线程上。你的客户所要做的就是监听事件


您可能已经到过这里,但请参见:

它将在发起该操作的UI线程上引发。在引擎盖下,BackgroundWorker使用一个用于在两个线程之间封送的方法。WPF和WinForms都将在启动时安装适当的SynchronizationContext。

如果BackgroundWorker是从UI线程创建的,那么这两个事件也将在UI线程上引发

如果它是从后台线程创建的,则事件将在未定义的后台线程上引发

有关更多信息,请参阅本文和此连接问题