Compartir a través de


AsyncCompletedEventArgs Clase

Definición

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
AsyncCompletedEventArgs
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)

Se aplica a

Consulte también