This documentation is archived and is not being maintained.

Multithreading in Windows Forms Controls

In many applications, you can make your user interface (UI) more responsive by performing time-consuming operations on another thread. A number of tools are available for multithreading your Windows Forms controls, including the System.Threading namespace, the System.Windows.Forms.Control.BeginInvoke(System.Delegate) method, and the BackgroundWorker component.


The BackgroundWorker component replaces and adds functionality to the System.Threading namespace and the System.Windows.Forms.Control.BeginInvoke(System.Delegate) method; however, these are retained for both backward compatibility and future use, if you choose. For more information, see BackgroundWorker Component Overview.

In This Section

How to: Make Thread-Safe Calls to Windows Forms Controls

Shows how to make thread-safe calls to Windows Forms controls.

How to: Use a Background Thread to Search for Files

Shows how to use the System.Threading namespace and the BeginInvoke method to search for files asynchronously.



Documents a component that encapsulates a worker thread for asynchronous operations.


Documents how to load a sound asynchronously.


Documents how to load an image asynchronously.

Related Sections

How to: Run an Operation in the Background

Shows how to perform a time-consuming operation with the BackgroundWorker component.

BackgroundWorker Component Overview

Provides topics that describe how to use the BackgroundWorker component for asynchronous operations.