Ahm*_*sud 6 c# backgroundworker
我想同步调用后台工作程序.我希望执行代码在backgroundworker完成执行时结束.我的BackgroundWorker代码在这里:
{
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += DoWork;
worker.RunWorkerCompleted += RunWorkerCompleted;
...
worker.RunWorkerAsync();
//wait for execution to end
}
Run Code Online (Sandbox Code Playgroud)
一种方法是再次检查状态,直到执行完成,但有没有其他好的方法呢?
Dan*_*rth 15
如果您不希望您的代码异步执行,请不要将其放入BackgroundWorker...
{
DoWork();
}
Run Code Online (Sandbox Code Playgroud)
但是,如果有一些不明确的原因,您绝对需要使用代码BackgroundWorker,您可以使用以下内容:
ManualResetEvent mre = new ManualResetEvent(false);
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += DoWork;
worker.RunWorkerCompleted += (s, e) =>
{
RunWorkerCompleted(s, e);
mre.Set();
};
// ...
worker.RunWorkerAsync();
mre.WaitOne();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6007 次 |
| 最近记录: |