--- 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 Describes this class and has links to all its members. Describes the type that holds data for the event. Describes the type that holds data for the 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.