AsyncCompletedEventArgs.Error Propriedade

Definição

Obtém um valor que indica qual erro ocorreu durante uma operação assíncrona.

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

Valor da propriedade

Uma instância de Exception, se ocorreu um erro durante uma operação assíncrona, caso contrário, null.

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

Comentários

Se uma exceção for gerada durante uma operação assíncrona, a classe atribuirá a exceção à Error propriedade . O delegado do manipulador de eventos do aplicativo cliente deve marcar a Error propriedade antes de acessar quaisquer propriedades em uma classe derivada de AsyncCompletedEventArgs; caso contrário, a propriedade gerará um TargetInvocationException com sua InnerException propriedade mantendo uma referência a Error.

O valor da Error propriedade será null se a operação tiver sido cancelada.

Notas aos Herdeiros

Se você fornecer propriedades somente leitura em uma classe derivada, certifique-se de chamar o RaiseExceptionIfNecessary() método em sua implementação de propriedade. Isso impede que os clientes acessem propriedades que potencialmente não são válidas devido a uma falha na operação assíncrona.

Aplica-se a

Confira também