AsyncCompletedEventArgs Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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) |