AsyncCompletedEventArgs Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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 seguinte demonstra a utilização de um AsyncOperation para acompanhar a vida útil das 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.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
Observações
Se estiver a usar uma classe que implementa a Visão Geral do Padrão Assíncrono Baseado em Eventos, a classe fornecerá um evento MethodNameCompleted . Se adicionar uma instância do System.ComponentModel.AsyncCompletedEventHandler delegado ao evento, receberá informação sobre o resultado das operações assíncronas no AsyncCompletedEventArgs parâmetro do método de gestor de eventos correspondente.
O delegado handler de eventos da aplicação cliente pode verificar a Cancelled propriedade para determinar se a tarefa assíncrona foi cancelada.
O delegado handler de eventos da aplicação cliente pode verificar a Error propriedade para determinar se ocorreu uma exceção durante a execução da tarefa assíncrona.
Se a classe suportar múltiplos métodos assíncronos, ou múltiplas chamadas ao mesmo método assíncrono, pode determinar qual tarefa gerou o evento MethodNameCompleted verificando o valor da UserState propriedade. O seu código terá de acompanhar estes tokens, conhecidos como ID de tarefa, à medida que as respetivas tarefas assíncronas começam e são concluídas.
Notas para Herdeiros
As classes que seguem o Padrão Assíncrono Baseado em Eventos podem gerar eventos para alertar os clientes sobre o estado das operações assíncronas pendentes. Se a classe fornecer um evento MethodNameCompleted , pode usar o AsyncCompletedEventArgs para informar os clientes sobre o resultado das operações assíncronas.
Pode querer comunicar aos clientes mais informações sobre o resultado de uma operação assíncrona do que uma AsyncCompletedEventArgs acomodação. Neste caso, pode derivar a sua própria classe a partir dessa AsyncCompletedEventArgs classe e fornecer variáveis de instância privadas adicionais e propriedades públicas correspondentes de apenas leitura. Chame o RaiseExceptionIfNecessary() método antes de devolver o valor da propriedade, caso a operação tenha sido cancelada ou ocorrido um erro.
Construtores
| Name | Description |
|---|---|
| AsyncCompletedEventArgs() |
Obsoleto.
Inicializa uma nova instância da AsyncCompletedEventArgs classe. |
| AsyncCompletedEventArgs(Exception, Boolean, Object) |
Inicializa uma nova instância da AsyncCompletedEventArgs classe. |
Propriedades
| Name | Description |
|---|---|
| Cancelled |
Recebe um valor que indica se uma operação assíncrona foi cancelada. |
| Error |
Recebe um valor que indica qual erro ocorreu durante uma operação assíncrona. |
| UserState |
Obtém o identificador único para a tarefa assíncrona. |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| RaiseExceptionIfNecessary() |
Levanta uma exceção fornecida pelo utilizador se uma operação assíncrona falhou. |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |