---
title: "BackgroundWorker Component"
ms.date: "03/30/2017"
helpviewer_keywords: 
  - "BackgroundWorker component"
  - "background tasks"
  - "Asynchronous Pattern"
  - "forms [Windows Forms], multithreading"
  - "components [Windows Forms], asynchronous"
  - "forms [Windows Forms], background operations"
  - "threading [Windows Forms], background operations"
  - "background operations"
ms.assetid: bef7b0ab-ce57-475a-a2d6-fb8a702a9417
---
# BackgroundWorker Component

The `BackgroundWorker` component enables your form or control to run an operation asynchronously.  
  
## In This Section  

 [BackgroundWorker Component Overview](backgroundworker-component-overview.md)  
 Describes the `BackgroundWorker` component, which gives you the ability to execute time-consuming operations asynchronously ("in the background"), on a thread different from your application's main UI thread.  
  
 [Walkthrough: Running an Operation in the Background](walkthrough-running-an-operation-in-the-background.md)  
 Demonstrates how to use the `BackgroundWorker` component in the designer to run a time-consuming operation on a separate thread.  
  
 [How to: Run an Operation in the Background](how-to-run-an-operation-in-the-background.md)  
 Demonstrates how to use the `BackgroundWorker` component to run a time-consuming operation on a separate thread.  
  
 [Walkthrough: Implementing a Form That Uses a Background Operation](walkthrough-implementing-a-form-that-uses-a-background-operation.md)  
 Creates an application using the designer that does mathematical computations asynchronously.  
  
 [How to: Implement a Form That Uses a Background Operation](how-to-implement-a-form-that-uses-a-background-operation.md)  
 Creates an application that does mathematical computations asynchronously.  
  
 [How to: Download a File in the Background](how-to-download-a-file-in-the-background.md)  
 Demonstrates how to use the `BackgroundWorker` component to download a file on a separate thread.  
  
## Reference  

 <xref:System.ComponentModel.BackgroundWorker>  
 Describes this class and has links to all its members.  
  
 <xref:System.ComponentModel.RunWorkerCompletedEventArgs>  
 Describes the type that holds data for the <xref:System.ComponentModel.BackgroundWorker.RunWorkerCompleted> event.  
  
 <xref:System.ComponentModel.ProgressChangedEventArgs>  
 Describes the type that holds data for the <xref:System.ComponentModel.BackgroundWorker.ProgressChanged> event.  
  
## Related Sections  

 [Event-based Asynchronous Pattern Overview](/dotnet/standard/asynchronous-programming-patterns/event-based-asynchronous-pattern-overview)  
 Describes how the asynchronous pattern makes available the advantages of multithreaded applications while hiding many of the complex issues inherent in multithreaded design.
