dcsimg
Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


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

WEBINAR:

On-Demand

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(
      loadDataBackgroundWorker_DoWork);

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

   //Start execution of the background operation. 
   loadDataBackgroundWorker.RunWorkerAsync();
}

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
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date