AsyncCompletedEventArgs.RaiseExceptionIfNecessary Método

Definición

Genera una excepción proporcionada por el usuario si se ha producido un error en una operación asincrónica.

C#
protected void RaiseExceptionIfNecessary ();

Excepciones

La propiedad Cancelled es true.

La operación asincrónica ha establecido la propiedad Error. La propiedad InnerException contiene una referencia a Error.

Ejemplos

En el ejemplo de código siguiente se muestra el uso RaiseExceptionIfNecessary de en propiedades de clase derivadas.

C#
public class CalculatePrimeCompletedEventArgs :
    AsyncCompletedEventArgs
{
    private int numberToTestValue = 0;
    private int firstDivisorValue = 1;
    private bool isPrimeValue;

    public CalculatePrimeCompletedEventArgs(
        int numberToTest,
        int firstDivisor,
        bool isPrime,
        Exception e,
        bool canceled,
        object state) : base(e, canceled, state)
    {
        this.numberToTestValue = numberToTest;
        this.firstDivisorValue = firstDivisor;
        this.isPrimeValue = isPrime;
    }

    public int NumberToTest
    {
        get
        {
            // Raise an exception if the operation failed or 
            // was canceled.
            RaiseExceptionIfNecessary();

            // If the operation was successful, return the 
            // property value.
            return numberToTestValue;
        }
    }

    public int FirstDivisor
    {
        get
        {
            // Raise an exception if the operation failed or 
            // was canceled.
            RaiseExceptionIfNecessary();

            // If the operation was successful, return the 
            // property value.
            return firstDivisorValue;
        }
    }

    public bool IsPrime
    {
        get
        {
            // Raise an exception if the operation failed or 
            // was canceled.
            RaiseExceptionIfNecessary();

            // If the operation was successful, return the 
            // property value.
            return isPrimeValue;
        }
    }
}

Notas a los desarrolladores de herederos

Si ha derivado su propia clase de la AsyncCompletedEventArgs clase , las propiedades de solo lectura deben llamar al RaiseExceptionIfNecessary() método antes de devolver el valor de propiedad. Si el código de trabajo asincrónico del componente asigna una excepción a la Error propiedad o establece la Cancelled propiedad trueen , la propiedad generará una excepción si un cliente intenta leer su valor. Esto impide que los clientes accedan a las propiedades que potencialmente no son válidas debido a un error en la operación asincrónica.

Se aplica a

Produto Versións
.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