AsyncCompletedEventArgs.RaiseExceptionIfNecessary Метод

Определение

Вызывает предоставленное пользователем исключение в случае неудачного выполнения асинхронной операции.

protected void RaiseExceptionIfNecessary ();

Исключения

Значение свойства Cancelledtrue.

Свойство Error было установлено асинхронной операцией. Свойство InnerException содержит ссылку на ошибку Error.

Примеры

В следующем примере кода показано использование RaiseExceptionIfNecessary в свойствах производного класса.

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

Примечания для тех, кто наследует этот метод

Если вы создали собственный AsyncCompletedEventArgs класс из класса , ваши доступные только для чтения свойства должны вызвать RaiseExceptionIfNecessary() метод перед возвратом значения свойства. Если асинхронный рабочий код компонента назначает исключение свойству Error или задает свойству trueзначение Cancelled , свойство вызывает исключение, если клиент пытается прочитать его значение. Это предотвращает доступ клиентов к свойствам, которые потенциально недопустимы из-за сбоя в асинхронной операции.

Применяется к

Продукт Версии
.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

См. также раздел