AsyncCompletedEventArgs Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Proporciona datos para el evento MethodNameCompleted
.
public ref class AsyncCompletedEventArgs : EventArgs
public class AsyncCompletedEventArgs : EventArgs
type AsyncCompletedEventArgs = class
inherit EventArgs
Public Class AsyncCompletedEventArgs
Inherits EventArgs
- Herencia
- Derivado
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar para AsyncOperation realizar un seguimiento de la duración de las operaciones asincrónicas. Este ejemplo de código es parte de un ejemplo más grande proporcionado para la clase System.ComponentModel.AsyncOperationManager.
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
Comentarios
Si usa una clase que implementa la información general del patrón asincrónico basado en eventos, la clase proporcionará un evento MethodNameCompleted
. Si agrega una instancia del System.ComponentModel.AsyncCompletedEventHandler delegado al evento, recibirá información sobre el resultado de las operaciones asincrónicas en el AsyncCompletedEventArgs parámetro del método de controlador de eventos correspondiente.
El delegado del controlador de eventos de la aplicación cliente puede comprobar la Cancelled propiedad para determinar si se canceló la tarea asincrónica.
El delegado del controlador de eventos de la aplicación cliente puede comprobar la Error propiedad para determinar si se produjo una excepción durante la ejecución de la tarea asincrónica.
Si la clase admite varios métodos asincrónicos o varias llamadas al mismo método asincrónico, puede determinar qué tarea generó el evento MethodNameCompleted
comprobando el valor de la UserState propiedad . El código tendrá que realizar un seguimiento de estos tokens, conocidos como identificadores de tareas, ya que sus tareas asincrónicas correspondientes se inician y completan.
Notas a los desarrolladores de herederos
Las clases que siguen el patrón asincrónico basado en eventos pueden generar eventos para alertar a los clientes sobre el estado de las operaciones asincrónicas pendientes. Si la clase proporciona un evento MethodNameCompleted
, puede usar para AsyncCompletedEventArgs indicar a los clientes el resultado de las operaciones asincrónicas.
Es posible que desee comunicar a los clientes más información sobre el resultado de una operación asincrónica que un AsyncCompletedEventArgs alojamiento. En este caso, puede derivar su propia clase de la AsyncCompletedEventArgs clase y proporcionar variables de instancia privadas adicionales y las propiedades públicas de solo lectura correspondientes. Llame al RaiseExceptionIfNecessary() método antes de devolver el valor de propiedad, en caso de que se canceló la operación o se produjo un error.
Constructores
AsyncCompletedEventArgs() |
Obsoletos.
Inicializa una nueva instancia de la clase AsyncCompletedEventArgs. |
AsyncCompletedEventArgs(Exception, Boolean, Object) |
Inicializa una nueva instancia de la clase AsyncCompletedEventArgs. |
Propiedades
Cancelled |
Obtiene un valor que indica si se ha cancelado una operación asincrónica. |
Error |
Obtiene un valor que indica el error que se produjo durante una operación asincrónica. |
UserState |
Obtiene el identificador único de la tarea asincrónica. |
Métodos
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
RaiseExceptionIfNecessary() |
Genera una excepción proporcionada por el usuario si se ha producido un error en una operación asincrónica. |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |