AsyncCompletedEventArgs.RaiseExceptionIfNecessary Metoda

Definicja

Zgłasza wyjątek dostarczony przez użytkownika, jeśli operacja asynchroniczna nie powiodła się.

C#
protected void RaiseExceptionIfNecessary ();

Wyjątki

Właściwość Cancelled to true.

Właściwość Error została ustawiona przez operację asynchroniczną. Właściwość InnerException zawiera odwołanie do Errorelementu .

Przykłady

Poniższy przykład kodu pokazuje użycie RaiseExceptionIfNecessary we właściwościach klasy pochodnej.

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

Uwagi dotyczące dziedziczenia

Jeśli utworzono własną klasę z AsyncCompletedEventArgs klasy, właściwości tylko do odczytu powinny wywołać metodę RaiseExceptionIfNecessary() przed zwróceniem wartości właściwości. Jeśli asynchroniczny kod procesu roboczego składnika przypisuje wyjątek do Error właściwości lub ustawia Cancelled właściwość na true, właściwość zgłosi wyjątek, jeśli klient spróbuje odczytać jego wartość. Uniemożliwia to klientom uzyskiwanie dostępu do właściwości, które są potencjalnie nieprawidłowe z powodu awarii operacji asynchronicznej.

Dotyczy

Produkt Wersje
.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

Zobacz też