gpt4 book ai didi

c# - 同步调用 BackgroundWorker

转载 作者:太空狗 更新时间:2023-10-29 20:53:08 25 4
gpt4 key购买 nike

我想同步调用后台worker。我希望代码的执行在 backgroundworker 完成执行后结束。我的 BackgroundWorker 代码在这里:

{
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += DoWork;
worker.RunWorkerCompleted += RunWorkerCompleted;
...
worker.RunWorkerAsync();
//wait for execution to end
}

一种方法是再次检查状态,直到执行完成,但还有其他好的方法吗?

最佳答案

如果您不希望您的代码异步执行,请不要将其放在BackgroundWorker...

{ 
DoWork();
}

但是,如果有一些不明确的原因说明您绝对需要将代码放在 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();

关于c# - 同步调用 BackgroundWorker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12213650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com