Windows Dev Center

AsyncCompletedEventArgs Class

Provides data for the MethodNameCompleted event.


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

public class AsyncCompletedEventArgs : EventArgs

The AsyncCompletedEventArgs type exposes the following members.

Public methodAsyncCompletedEventArgs()Initializes a new instance of the AsyncCompletedEventArgs class.
Public methodAsyncCompletedEventArgs(Exception, Boolean, Object)Initializes a new instance of the AsyncCompletedEventArgs class.

Public propertyCancelledGets a value that indicates whether an asynchronous operation has been canceled.
Public propertyErrorGets a value that indicates which error occurred during an asynchronous operation.
Public propertyUserStateGets the unique identifier for the asynchronous task.

Public methodEquals(Object)Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Protected methodRaiseExceptionIfNecessaryRaises a user-supplied exception if an asynchronous operation failed.
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)

If you are using a class that implements the event-based asynchronous pattern that is described in the Event-based Asynchronous Pattern Overview topic of the .NET Framework documentation, the class will provide a MethodNameCompleted event. If you add an instance of the System.ComponentModel.AsyncCompletedEventHandler delegate to the event, you will receive information about the outcome of asynchronous operations in the AsyncCompletedEventArgs parameter of the corresponding event-handler method.

The client application's event-handler delegate can check the Cancelled property to determine if the asynchronous task was canceled.

The client application's event-handler delegate can check the Error property to determine if an exception occurred during execution of the asynchronous task.

If the class supports multiple asynchronous methods, or multiple calls to the same asynchronous method, you can determine which task raised the MethodNameCompleted event by checking the value of the UserState property. Your code will have to track these tokens, known as task IDs, as their corresponding asynchronous tasks start and complete.

Notes to Inheritors

You may want to communicate to clients more information about the outcome of an asynchronous operation than AsyncCompletedEventArgs supports. In this case, you can derive a custom class from the AsyncCompletedEventArgs class and provide additional private instance variables and corresponding read-only public properties. Call the RaiseExceptionIfNecessary method before you return the property value, in case the operation was canceled or an error occurred.

The following code example demonstrates how to derive a custom class from AsyncCompletedEventArgs to pass additional information back to the client from an asynchronous operation. This code example is part of a larger example provided for the System.ComponentModel.AsyncOperationManager class.

// Define a custom Completed-event arguments class allowing 
// the data gathered by GetPersons to be returned.
public class GetPersonsCompletedEventArgs : AsyncCompletedEventArgs
    private List<Person> dataListValue;
    public GetPersonsCompletedEventArgs(
        List<Person> dataList,
        Exception error,
        bool cancelled,
        object userState)
        : base(error, cancelled, userState)
        dataListValue = dataList;
    public List<Person> DataListValue
            return dataListValue;

Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Windows Phone

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

© 2015 Microsoft