【发布时间】:2018-07-20 05:02:04
【问题描述】:
我想同步调用后台工作者。我希望在后台工作人员完成执行后结束代码的执行。 我的 BackgroundWorker 代码在这里:
{
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += DoWork;
worker.RunWorkerCompleted += RunWorkerCompleted;
...
worker.RunWorkerAsync();
//wait for execution to end
}
这样做的一种方法是再次检查状态 n 直到其执行完成,但是还有其他好的方法吗?
【问题讨论】:
-
如果同步等待,使用 BackgroundWorker 有什么意义?
-
为什么不在 RunWorkerCompleted 事件下,在 BackgroundWorker 完成后移动你想要执行的代码部分?
-
@AhmedMasud:您应该专注于修复该错误,而不是构建解决方法。
-
@ChrisGessler 但是如果你同步等待后台工作人员结束,你无论如何都会阻塞 UI
-
@ChrisGessler“使用 Async 和 Await 进行异步编程”,同步如何? ;)
标签: c# backgroundworker