我有2个异步进程,需要被依次调用(一个是XML创建backgroundworker
,另一个是使用在第一个进程中创建的XML文件的raring BW)。这些线程的主要原因是阻止UI冻结并通过进度条提供状态更新 - 因为这样的同步方法不可取/可能。等待BackgroundWorker完成?
if (!CreateXMLBW.IsBusy)
{
CreateXMLBW.RunWorkerAsync("");
}
if (!CreateRarBW.IsBusy)
{
CreateRarBW.RunWorkerAsync();
}
我不能把第二BW第一的完成事件中的过程可以单独使用,因此,如果我只是想创建的XML文件,我可以做到这一点。
我试过使用AutoResetEvent
和WaitOne
但这(无论什么原因)仍然无法正常工作。
是否有任何其他方式可以等待BW完成而不冻结主UI线程?
为什么你不创建一个新的工人同步运行这两个工人?你运行这个新的工作异步 – Fabske
我喜欢这个想法,但反对干。 –
它很干燥,您不需要重复使用其他两名工作人员的代码。无论如何,下面提出的任务解决方案更加优雅:) – Fabske