共用方式為


AsyncCompletedEventArgs 類別

定義

提供 MethodNameCompleted 事件的資料。

public ref class AsyncCompletedEventArgs : EventArgs
public class AsyncCompletedEventArgs : EventArgs
type AsyncCompletedEventArgs = class
    inherit EventArgs
Public Class AsyncCompletedEventArgs
Inherits EventArgs
繼承
AsyncCompletedEventArgs
衍生

範例

以下程式碼範例示範使用 an AsyncOperation 來追蹤非同步操作的壽命。 此程式碼範例是本類別更大範例 System.ComponentModel.AsyncOperationManager 的一部分。

using System;
using System.Collections;
using System.Collections.Specialized;
using System.ComponentModel;
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.
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

備註

如果你使用的類別實作 了基於事件的非同步模式概覽,該類別會提供一個 MethodNameCompleted 事件。 如果你將代理的實例 System.ComponentModel.AsyncCompletedEventHandler 加入事件,你會在對應事件處理方法的參數中獲得非同步操作 AsyncCompletedEventArgs 結果的資訊。

用戶端應用程式的事件處理代理可以檢查該 Cancelled 屬性,以判斷非同步任務是否被取消。

用戶端應用程式的事件處理代理可以檢查該 Error 屬性,以判斷在執行非同步任務時是否發生異常。

如果類別支援多個非同步方法,或多次呼叫同一非同步方法,你可以透過檢查該屬性的UserState值來判斷是哪個任務引發了 MethodNameCompleted 事件。 你的程式碼需要追蹤這些稱為任務 ID 的標記,當對應的非同步任務開始和完成時。

給繼承者的注意事項

遵循事件基礎非同步模式的類別可以啟動事件,提醒客戶端待處理的非同步操作狀態。 如果類別提供 MethodNameCompleted 事件,你可以用 來 AsyncCompletedEventArgs 告訴客戶非同步操作的結果。

你可能想向客戶傳達更多關於非同步操作結果的資訊,而非僅僅 AsyncCompletedEventArgs 是服務。 在這種情況下,你可以從該 AsyncCompletedEventArgs 類別衍生出自己的類別,並提供額外的私有實例變數和相應的唯讀公開屬性。 在回傳屬性值前呼叫該 RaiseExceptionIfNecessary() 方法,以防操作被取消或發生錯誤。

建構函式

名稱 Description
AsyncCompletedEventArgs()
已淘汰.

初始化 AsyncCompletedEventArgs 類別的新執行個體。

AsyncCompletedEventArgs(Exception, Boolean, Object)

初始化 AsyncCompletedEventArgs 類別的新執行個體。

屬性

名稱 Description
Cancelled

會得到一個值,表示非同步操作是否已被取消。

Error

會獲得一個值,表示非同步操作中發生了哪個錯誤。

UserState

取得非同步任務的唯一識別碼。

方法

名稱 Description
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetType()

取得目前實例的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
RaiseExceptionIfNecessary()

若非同步操作失敗,則會觸發使用者提供的例外。

ToString()

傳回表示目前 物件的字串。

(繼承來源 Object)

適用於

另請參閱