你可以撥打RunWorkerAsync
所有你喜歡的。您無需創建新的BackgroundWorker
對象。
唯一的限制是,你不能把它當BackgroundWorker
目前正忙於一個異步操作了。所以常見的方法是:例如,當用戶單擊按鈕時,請撥打RunWorkerAsync
。然後禁用按鈕,並在處理程序RunWorkerCompleted
事件重新啓用它:
void DoWorkButton_Click(object sender, EventArgs e)
{
DoWorkButton.Enabled = false;
Worker.RunWorkerAsync();
}
void Worker_DoWork(object sender, DoWorkEventArgs e)
{
// Do some async operation.
}
void Worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
try
{
// Do some updates.
}
finally
{
DoWorkButton.Enabled = true;
}
}
只要確保你再次調用'RunWorkerAsync'之前等待事件。 – 2011-05-12 20:36:32