Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

AsyncCompletedEventArgs.Error Property

Gets a value indicating which error occurred during an asynchronous operation.

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

'Declaration
Public ReadOnly Property Error As Exception
'Usage
Dim instance As AsyncCompletedEventArgs
Dim value As Exception

value = instance.Error

/** @property */
public Exception get_Error ()

public function get Error () : Exception

Not applicable.

Property Value

An Exception instance, if an error occurred during an asynchronous operation; otherwise a null reference (Nothing in Visual Basic).

If an exception is raised during an asynchronous operation, the class will assign the exception to the Error property. The client application's event-handler delegate should check the Error property before accessing any properties in a class derived from AsyncCompletedEventArgs; otherwise, the property will raise a TargetInvocationException with its InnerException property holding a reference to Error.

The value of the Error property is a null reference (Nothing in Visual Basic) if the operation was canceled.

Notes to Inheritors: If you provide read-only properties in a derived class, be sure to call the RaiseExceptionIfNecessary method in your property implementation. This prevents clients from accessing properties that are potentially not valid due to a failure in the asynchronous operation.

The following code example demonstrates using an AsyncOperation to track the lifetime of asynchronous operations. This code example is part of a larger example provided for the System.ComponentModel.AsyncOperationManager class.

Imports System
Imports System.Collections
Imports System.Collections.Specialized
Imports System.ComponentModel
Imports System.Drawing
Imports System.Globalization
Imports System.Threading
Imports System.Windows.Forms

	...

    ' This event handler updates the ListView control when the
    ' PrimeNumberCalculator raises the CalculatePrimeCompleted
    ' event. The ListView item is updated with the appropriate
    ' outcome of the calculation: Canceled, Error, or result.
    Private Sub primeNumberCalculator1_CalculatePrimeCompleted( _
        ByVal sender As Object, _
        ByVal e As CalculatePrimeCompletedEventArgs) _
        Handles primeNumberCalculator1.CalculatePrimeCompleted

        Dim taskId As Guid = CType(e.UserState, Guid)

        If e.Cancelled Then
            Dim result As String = "Canceled"

            Dim lvi As ListViewItem = UpdateListViewItem( _
                taskId, _
                result)

            If (lvi IsNot Nothing) Then
                lvi.BackColor = Color.Pink
                lvi.Tag = Nothing
            End If

        ElseIf e.Error IsNot Nothing Then

            Dim result As String = "Error"

            Dim lvi As ListViewItem = UpdateListViewItem( _
                taskId, result)

            If (lvi IsNot Nothing) Then
                lvi.BackColor = Color.Red
                lvi.ForeColor = Color.White
                lvi.Tag = Nothing
            End If
        Else
            Dim result As Boolean = e.IsPrime

            Dim lvi As ListViewItem = UpdateListViewItem( _
                taskId, _
                result, _
                e.FirstDivisor)

            If (lvi IsNot Nothing) Then
                lvi.BackColor = Color.LightGray
                lvi.Tag = Nothing
            End If
        End If

    End Sub

import System.*;
import System.Collections.*;
import System.Collections.Specialized.*;
import System.ComponentModel.*;
import System.Data.*;
import System.Drawing.*;
import System.Threading.*;
import System.Windows.Forms.*;


	...

    private void primeNumberCalculator1_CalculatePrimeCompleted(Object sender,
        CalculatePrimeCompletedEventArgs e)
    {
        Guid guid = (Guid)e.get_UserState();
        if (e.get_Cancelled()) {
            String result = "Cancelled";
            ListViewItem lvi = UpdateListViewItem((Guid)e.get_UserState(),
                result);
            if (lvi != null) {
                lvi.set_BackColor(Color.get_Pink());
                lvi.set_Tag(null);
            }
        }
        else {
            if (e.get_Error() != null) {
                String result = "Error";
                ListViewItem lvi = UpdateListViewItem((Guid)e.get_UserState(),
                    result);
                if (lvi != null) {
                    lvi.set_BackColor(Color.get_Red());
                    lvi.set_ForeColor(Color.get_White());
                    lvi.set_Tag(null);
                }
            }
            else {
                boolean result = e.get_IsPrime();
                ListViewItem lvi = UpdateListViewItem((Guid)e.get_UserState(),
                    result, e.get_FirstDivisor());
                if (lvi != null) {
                    lvi.set_BackColor(Color.get_LightGray());
                    lvi.set_Tag(null);
                }
            }
        }
    } //primeNumberCalculator1_CalculatePrimeCompleted

Windows 98, Windows Server 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0

XNA Framework

Supported in: 1.0

Community Additions

ADD
Show:
© 2015 Microsoft