Event-based Asynchronous Pattern (EAP)

There are a number of ways to expose asynchronous features to client code. The Event-based Asynchronous Pattern prescribes one way for classes to present asynchronous behavior.

Note

Starting with .NET Framework 4, the Task Parallel Library provides a new model for asynchronous and parallel programming. For more information, see Task Parallel Library (TPL) and Task-based Asynchronous Pattern (TAP).

In This Section

Event-based Asynchronous Pattern Overview
Describes how the Event-based Asynchronous Pattern makes available the advantages of multithreaded applications while hiding many of the complex issues inherent in multithreaded design.

Implementing the Event-based Asynchronous Pattern
Describes the standardized way to package a class that has asynchronous features.

Best Practices for Implementing the Event-based Asynchronous Pattern
Describes the requirements for exposing asynchronous features according to the Event-based Asynchronous Pattern.

Deciding When to Implement the Event-based Asynchronous Pattern
Describes how to determine when you should choose to implement the Event-based Asynchronous Pattern instead of the IAsyncResult pattern represented by the Asynchronous Programming Model (APM)

How to: Implement a Component That Supports the Event-based Asynchronous Pattern
Describes how to create a component that implements the Event-based Asynchronous Pattern. It is implemented using helper classes from the System.ComponentModel namespace, which ensures that the component works correctly under any application model.

How to: Implement a Client of the Event-based Asynchronous Pattern
Describes how to create a client that uses a component that implements the Event-based Asynchronous Pattern.

How to: Use Components That Support the Event-based Asynchronous Pattern
Describes how to use a component that supports the Event-based Asynchronous Pattern.

Reference

AsyncOperation
Describes the AsyncOperation class and has links to all its members.

AsyncOperationManager
Describes the AsyncOperationManager class and has links to all its members.

BackgroundWorker
Describes the BackgroundWorker component and has links to all its members.

Task Parallel Library (TPL)
Describes a programming model for asynchronous and parallel operations.

Threading
Describes multithreading features in .NET.

See also