BackgroundWorker.RunWorkerAsync Method

Starts execution of a background operation.

Namespace:  System.ComponentModel
Assembly:  System (in System.dll)

public void RunWorkerAsync()

The RunWorkerAsync method submits a request to start the operation running asynchronously. When the request is serviced, the DoWork event is raised, which in turn starts execution of your background operation.

If the background operation is already running, calling RunWorkerAsync again will raise an InvalidOperationException.

The following code example demonstrates the use of the RunWorkerAsync method to start an asynchronous operation. It is part of a larger example described in How to: Download a File in the Background.

private void downloadButton_Click(object sender, EventArgs e)
{
    // Start the download operation in the background. 
    this.backgroundWorker1.RunWorkerAsync();

    // Disable the button for the duration of the download. 
    this.downloadButton.Enabled = false;

    // Once you have started the background thread you  
    // can exit the handler and the application will  
    // wait until the RunWorkerCompleted event is raised. 

    // Or if you want to do something else in the main thread, 
    // such as update a progress bar, you can do so in a loop  
    // while checking IsBusy to see if the background task is 
    // still running. 

    while (this.backgroundWorker1.IsBusy)
    {
        progressBar1.Increment(1);
        // Keep UI messages moving, so the form remains  
        // responsive during the asynchronous operation.
        Application.DoEvents();
    }
}

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone Silverlight 8.1, Windows Phone Silverlight 8

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft