AsyncCompletedEventArgs Class

[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]

Provides data for the MethodNameCompleted event.

Inheritance Hierarchy

System..::.Object
System..::.EventArgs
System.ComponentModel..::.AsyncCompletedEventArgs
More...

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

Syntax

Public Class AsyncCompletedEventArgs _
    Inherits EventArgs
public class AsyncCompletedEventArgs : EventArgs

The AsyncCompletedEventArgs type exposes the following members.

Constructors

Name Description
AsyncCompletedEventArgs()()() Initializes a new instance of the AsyncCompletedEventArgs class.
AsyncCompletedEventArgs(Exception, Boolean, Object) Initializes a new instance of the AsyncCompletedEventArgs class.

Top

Properties

Name Description
Cancelled Gets a value that indicates whether an asynchronous operation has been canceled.
Error Gets a value that indicates which error occurred during an asynchronous operation.
UserState Gets the unique identifier for the asynchronous task.

Top

Methods

Name Description
Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Finalize Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.)
GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
GetType Gets the Type of the current instance. (Inherited from Object.)
MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
RaiseExceptionIfNecessary Raises a user-supplied exception if an asynchronous operation failed.
ToString Returns a string that represents the current object. (Inherited from Object.)

Top

Remarks

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.

Examples

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
    Inherits AsyncCompletedEventArgs
    Private m_dataListValue As List(Of Person)
    Public Sub New _
        (ByVal dataList As List(Of Person), _
         ByVal exception As Exception, _
         ByVal cancelled As Boolean, _
         ByVal userState As Object)

        MyBase.New(exception, cancelled, userState)
        m_dataListValue = dataList
    End Sub

    Public ReadOnly Property DataListValue() As List(Of Person)
        Get
            Me.RaiseExceptionIfNecessary()
            Return m_dataListValue
        End Get
    End Property
End 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
    {
        get
        {
            this.RaiseExceptionIfNecessary();
            return dataListValue;
        }
    }
}

Version Information

Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Platforms

Windows Phone

Thread Safety

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

See Also

Reference

System.ComponentModel Namespace

System.ComponentModel..::.AsyncCompletedEventHandler

System.ComponentModel..::.AsyncOperationManager

System.ComponentModel..::.AsyncOperation

Other Resources

Implementing the Event-based Asynchronous Pattern

Inheritance Hierarchy

System..::.Object
System..::.EventArgs
System.ComponentModel..::.AsyncCompletedEventArgs
Microsoft.Phone.Maps.Services..::.QueryCompletedEventArgs<(Of <(T>)>)
System.ComponentModel..::.RunWorkerCompletedEventArgs
System.Device.Location..::.ResolveAddressCompletedEventArgs
System.Net..::.DownloadStringCompletedEventArgs
System.Net..::.OpenReadCompletedEventArgs
System.Net..::.OpenWriteCompletedEventArgs
System.Net..::.UploadStringCompletedEventArgs
System.ServiceModel..::.ClientBase<(Of <(TChannel>)>)..::.InvokeAsyncCompletedEventArgs
System.Windows.Media..::.AcquireLicenseCompletedEventArgs
System.Windows.Media..::.CaptureImageCompletedEventArgs
System.Windows.Media..::.DomainOperationCompletedEventArgs
System.Windows.Media..::.DrmSetupDecryptorCompletedEventArgs