Compartilhar via


AsyncCompletedEventArgs Classe

Definição

Fornece dados para o evento MethodNameCompleted .

public ref class AsyncCompletedEventArgs : EventArgs
public class AsyncCompletedEventArgs : EventArgs
type AsyncCompletedEventArgs = class
    inherit EventArgs
Public Class AsyncCompletedEventArgs
Inherits EventArgs
Herança
AsyncCompletedEventArgs
Derivado

Exemplos

O exemplo de código a seguir demonstra como usar um AsyncOperation para acompanhar o tempo de vida de operações assíncronas. Este exemplo de código faz parte de um exemplo maior fornecido para a System.ComponentModel.AsyncOperationManager classe .

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

Comentários

Se você estiver usando uma classe que implementa a Visão geral do padrão assíncrono baseado em evento, a classe fornecerá um evento MethodNameCompleted . Se você adicionar uma instância do System.ComponentModel.AsyncCompletedEventHandler delegado ao evento, receberá informações sobre o resultado de operações assíncronas no AsyncCompletedEventArgs parâmetro do método manipulador de eventos correspondente.

O representante do manipulador de eventos do aplicativo cliente pode marcar a Cancelled propriedade para determinar se a tarefa assíncrona foi cancelada.

O delegado do manipulador de eventos do aplicativo cliente pode marcar a Error propriedade para determinar se ocorreu uma exceção durante a execução da tarefa assíncrona.

Se a classe der suporte a vários métodos assíncronos ou a várias chamadas para o mesmo método assíncrono, você poderá determinar qual tarefa gerou o evento MethodNameCompleted verificando o valor da UserState propriedade. Seu código precisará acompanhar esses tokens, conhecidos como IDs de tarefa, à medida que suas tarefas assíncronas correspondentes forem iniciadas e concluídas.

Notas aos Herdeiros

Classes que seguem o Padrão Assíncrono baseado em evento podem gerar eventos para alertar os clientes sobre a status de operações assíncronas pendentes. Se a classe fornecer um evento MethodNameCompleted , você poderá usar o AsyncCompletedEventArgs para informar os clientes sobre o resultado de operações assíncronas.

Talvez você queira comunicar aos clientes mais informações sobre o resultado de uma operação assíncrona do que uma AsyncCompletedEventArgs acomodação. Nesse caso, você pode derivar sua própria classe da AsyncCompletedEventArgs classe e fornecer variáveis de instância privada adicionais e propriedades públicas somente leitura correspondentes. Chame o RaiseExceptionIfNecessary() método antes de retornar o valor da propriedade, caso a operação tenha sido cancelada ou ocorra um erro.

Construtores

AsyncCompletedEventArgs()
Obsoleto.

Inicializa uma nova instância da classe AsyncCompletedEventArgs.

AsyncCompletedEventArgs(Exception, Boolean, Object)

Inicializa uma nova instância da classe AsyncCompletedEventArgs.

Propriedades

Cancelled

Obtém um valor que indica se uma operação assíncrona foi cancelada.

Error

Obtém um valor que indica qual erro ocorreu durante uma operação assíncrona.

UserState

Obtém o identificador exclusivo para a tarefa assíncrona.

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
RaiseExceptionIfNecessary()

Gera uma exceção fornecida pelo usuário se uma operação assíncrona falhou.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Confira também