AsyncCompletedEventArgs.Error Propiedad

Definición

Obtiene un valor que indica el error que se produjo durante una operación asincrónica.

C#
public Exception Error { get; }
C#
public Exception? Error { get; }

Valor de propiedad

Instancia de Exception, si se ha producido un error durante una operación asincrónica; de lo contrario, null.

Ejemplos

En el ejemplo de código siguiente se muestra el uso de 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.

C#
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;
C#
// 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;
        }
    }
}

Comentarios

Si se produce una excepción durante una operación asincrónica, la clase asignará la excepción a la Error propiedad . El delegado del controlador de eventos de la aplicación cliente debe comprobar la Error propiedad antes de tener acceso a las propiedades de una clase derivada de AsyncCompletedEventArgs; de lo contrario, la propiedad generará un TargetInvocationException elemento con su InnerException propiedad que contiene una referencia a Error.

El valor de la Error propiedad es null si se canceló la operación.

Notas a los desarrolladores de herederos

Si proporciona propiedades de solo lectura en una clase derivada, asegúrese de llamar al método en la RaiseExceptionIfNecessary() implementación de la propiedad. Esto impide que los clientes accedan a propiedades que potencialmente no son válidas debido a un error en la operación asincrónica.

Se aplica a

Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

Consulte también