AsyncCompletedEventArgs..::.Error Property Home
This page is specific to:Microsoft Version:2.03.03.5Silverlight 34.0
.NET Framework Class Library for Silverlight
AsyncCompletedEventArgs..::.Error Property

Gets a value that indicates which error occurred during an asynchronous operation.

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

'Usage

Dim instance As AsyncCompletedEventArgs
Dim value As Exception

value = instance.Error


'Declaration

Public ReadOnly Property Error As Exception
    Get

Property Value

Type: System..::.Exception
An Exception instance, if an error occurred during an asynchronous operation; otherwise nullNothingnullptra null reference (Nothing in Visual Basic).
Remarks

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 nullNothingnullptra null reference (Nothing in Visual Basic) if the operation was canceled.

Notes to Inheritors:

If you provide read-only properties in a derived class, make sure that you call the RaiseExceptionIfNecessary method in your property implementation. This prevents clients from accessing properties that are potentially not valid because of a failure in the asynchronous operation.

Examples

The following code example demonstrates the using the Error property to inform a client that an asynchronous operation failed. This code example is part of a larger example provided for the System.ComponentModel..::.AsyncOperationManager class.

' The worker process for data retrieval. Simulates a 
' time-consuming operation by using Thread.Sleep. 
Public Sub GetPersons(ByVal itemsCount As Integer, _
                      ByVal Name As String, _
                      ByVal asyncOperation As AsyncOperation)

    Dim canceled As Boolean = False
    Dim exception As Exception = Nothing

    Dim personList As New List(Of Person)()

    Dim i As Integer = 1
    While i <= itemsCount OrElse itemsCount = 0
        Dim currentName As String = Name + CStr(i)
        personList.Add(New Person() With { _
                .Name = currentName, _
                .Age = i, _
                .Birthday = DateTime.Today.AddYears(-i), _
                .Available = (i Mod 2 = 0) _
            })

        ' Delay 1 second for each person. 
        Thread.Sleep(1000)

        ' Report progress by using AsyncOperation to raise 
        ' the ProgressChanged event. Pass in itemsCount of 
        ' zero to see effect of catching an exception. 
        Dim percentComplete As Integer
        Try
            percentComplete = Convert.ToInt32(i * 100 / itemsCount)
        Catch ex As Exception
            exception = ex
            Exit While
        End Try

        Dim progressChangedEventArgs As _
            New GetPersonsProgressChangedEventArgs _
                (currentName, _
                 percentComplete, _
                 asyncOperation.UserSuppliedState)

        asyncOperation.Post _
            (AsyncOpProgressReportHandler, progressChangedEventArgs)

        If GetPersonsCheckForCancellation _
            (asyncOperation.UserSuppliedState) Then
            canceled = True
            Exit While
        End If

        i += 1
    End While

    ' Report completion by raising the Completed event. 
    Dim completedEventArgs As _
        New GetPersonsCompletedEventArgs _
            (personList, _
             exception, _
             canceled, _
             asyncOperation.UserSuppliedState)

    asyncOperation.PostOperationCompleted _
        (AsyncOpCompletedHandler, completedEventArgs)
End Sub


Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

See Also

Reference

Other Resources

© 2009 Microsoft Corporation. All rights reserved.   Terms of Use | Trademarks | Privacy Statement
Page view tracker
Rate the Lightweight library
x
Lightweight builds on ScriptFree (loband) by adding features you've requested: a SearchBox and default code language selection.
Do you like the SearchBox?
Do you like the tabbed code blocks?
How useful is this topic?
Tell us more.
Thanks
x
You're helping to improve MSDN Online.
Feedback
Switch View
Classic
Lightweight Beta
ScriptFree
Switch View