BackgroundWorker backgroundWorker
Worker worker;
private void AsyncStartWork()
{
if (!backgroundWorker.IsBusy)
{
worker = new Worker(...);
backgroundWorker.DoWork += new
DoWorkEventHandler(backgroundWorker_DoWork);
backgroundWorker.RunWorkerCompleted += new
RunWorkerCompletedEventHandler(backgroundWorker_RunWorkerCompleted);
backgroundWorker.RunWorkerAsync((object)worker);
}
}
private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
Worker worker = e.Argument as Worker;
if (worker != null)
{
worker.DoSomething();
}
}
private void backgroundWorker_RunWorkerCompleted(object sender,
RunWorkerCompletedEventArgs e)
{
backgroundWorker.DoWork -= new
DoWorkEventHandler(backgroundWorker_DoWork);
backgroundWorker.RunWorkerCompleted -= new
RunWorkerCompletedEventHandler(
backgroundWorker_RunWorkerCompleted);
// Update GUI
// IF necessary do something with results
Show(worker.Results);
}
March 6, 2008
Simple Background Worker Object Template
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment