AsyncCompletedEventArgs.Error プロパティ

定義

非同期操作中に発生したエラーを示す値を取得します。Gets a value indicating which error occurred during an asynchronous operation.

public:
 property Exception ^ Error { Exception ^ get(); };
public Exception Error { get; }
member this.Error : Exception
Public ReadOnly Property Error As Exception

プロパティ値

非同期操作中にエラーが発生した場合は Exception インスタンス。それ以外の場合は nullAn Exception instance, if an error occurred during an asynchronous operation; otherwise null.

次のコード例は、をAsyncOperation使用して非同期操作の有効期間を追跡する方法を示しています。The following code example demonstrates using an AsyncOperation to track the lifetime of asynchronous operations. このコード例は、 System.ComponentModel.AsyncOperationManagerクラスに対して提供される大規模な例の一部です。This code example is part of a larger example provided for the System.ComponentModel.AsyncOperationManager class.

using System;
using System.Collections;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Globalization;
using System.Threading;
using System.Windows.Forms;
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 void primeNumberCalculator1_CalculatePrimeCompleted(
    object sender, 
    CalculatePrimeCompletedEventArgs e)
{
    Guid taskId = (Guid)e.UserState;

    if (e.Cancelled)
    {   
        string result = "Canceled";

        ListViewItem lvi = UpdateListViewItem(taskId, result);

        if (lvi != null)
        {
            lvi.BackColor = Color.Pink;
            lvi.Tag = null;
        }
    }
    else if (e.Error != null)
    {
        string result = "Error";

        ListViewItem lvi = UpdateListViewItem(taskId, result);

        if (lvi != null)
        {
            lvi.BackColor = Color.Red;
            lvi.ForeColor = Color.White;
            lvi.Tag = null;
        }
    }
    else
    {   
        bool result = e.IsPrime;

        ListViewItem lvi = UpdateListViewItem(
            taskId, 
            result, 
            e.FirstDivisor);

        if (lvi != null)
        {
            lvi.BackColor = Color.LightGray;
            lvi.Tag = null;
        }
    }
}
' 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

注釈

非同期操作中に例外が発生した場合、クラスは、その例外をErrorプロパティに割り当てます。If an exception is raised during an asynchronous operation, the class will assign the exception to the Error property. クライアントアプリケーションのイベントハンドラー Errorデリゲートは、からAsyncCompletedEventArgs派生したクラスのプロパティにアクセスする前に、プロパティを確認する必要があります。それInnerException以外の場合、プロパティはを保持するプロパティを使用してをTargetInvocationException発生させます。へErrorの参照。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.

操作が取り消されErrorた場合null 、プロパティの値はになります。The value of the Error property is null if the operation was canceled.

注意 (継承者)

派生クラスで読み取り専用プロパティを指定する場合は、必ずプロパティ実装でRaiseExceptionIfNecessary()メソッドを呼び出してください。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.

適用対象

こちらもご覧ください