RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: .NET
Expertise: Intermediate
Aug 11, 2009

Launching an Asynchronous Operation Using BackgroundWorker

The BackgroundWorker class in the System.ComponentModel namespace (in the .NET Framework 2.0 and later) lets you launch time-consuming operations on a separate thread, which helps keep your user interface (UI) responsive. In contrast, running long time-consuming operations on the main thread blocks the whole UI, essentially "freezing" it until the operation is complete.

The following example shows how to launch a simple background operation using BackgroundWorker:

// Load complex time-consuming data.
void LoadData()
   //Create background worker instance.
   BackgroundWorker loadDataBackgroundWorker = new BackgroundWorker();

   //Create an event handler that actually does the background work.
   loadDataBackgroundWorker.DoWork += new DoWorkEventHandler(

   //(Optional) Create an event handler that gets called 
   // when the background work is complete.
   loadDataBackgroundWorker.RunWorkerCompleted += new 

   //Start execution of the background operation. 

void loadDataBackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
   //Perform complet task here.
   //Set e.Result if any result is expected from the task.

void loadDataBackgroundWorker_RunWorkerCompleted( 
   object sender, RunWorkerCompletedEventArgs e)
   //Check for errors during background operation and re-throw.
   if (e.Error != null)
      throw e.Error;
   //Update any UI elements here using e.Result.
Jayadev D
Close Icon
Thanks for your registration, follow us on our social networks to keep up-to-date