在主线程中,我有一个Timer
。在Tick
事件中,我运行BackgroundWorker
。我在那里做了一些事情,之后BackgroundWorker
调用RunWorkerCompleted
事件。等待BackgroundWorker RunWorker完成
在主线程中我有功能Stop
。该功能禁用Timer
。但是我想在他工作时等待BackgroundWorker
。
例如:
public void Next()
{
// Start the asynchronous operation
if (!this._backgroundWorker.IsBusy)
this._backgroundWorker.RunWorkerAsync();
}
private void _backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
DoSomething();
}
private void _backgroundWorker_RunWorkerCompleted(object sender,
RunWorkerCompletedEventArgs e)
{
DoSomethingElse();
}
public void Stop()
{
this._timer.Enabled = false;
}
所以我的问题是如何等待RunWorkerCompleted
事件的BackgroundWorker
?我需要等到DoSomethingElse();
完成。
感谢
没有。你不会等待后台工作人员......这就是为什么它叫做后台工作人员 - 你的应用程序在后台工作人员正在工作时继续进行工作。您将一个事件监听器附加到您的应用程序,应该在后台工作人员完成后触发,然后处理数据。 – ppumkin 2011-05-07 13:46:23
ariba! http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx – ppumkin 2011-05-07 13:47:12
私人小组backgroundWorker1_RunWorkerCompleted(_ BYVAL发件人作为对象,BYVALË作为RunWorkerCompletedEventArgs)_ 把手backgroundWorker1.RunWorkerCompleted – ppumkin 2011-05-07 13:48:39