Browse DevX
Sign up for e-mail newsletters from DevX

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



Building the Right Environment to Support AI, Machine Learning and Deep Learning

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
Thanks for your registration, follow us on our social networks to keep up-to-date