在主線程中,我有一個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