(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

AsyncCompletedEventArgs.RaiseExceptionIfNecessary-Methode

Löst eine benutzerdefinierte Ausnahme aus, wenn bei einem asynchronen Vorgang ein Fehler aufgetreten ist.

Namespace:  System.ComponentModel
Assembly:  System (in System.dll)

protected void RaiseExceptionIfNecessary()

AusnahmeBedingung
InvalidOperationException

Die Cancelled-Eigenschaft ist true.

TargetInvocationException

Die Error-Eigenschaft wurde durch den asynchronen Vorgang festgelegt. Die InnerException-Eigenschaft enthält einen Verweis auf Error.

Hinweise zur Vererbung

Wenn Sie eine eigene Klasse von der AsyncCompletedEventArgs-Klasse abgeleitet haben, sollten die schreibgeschützten Eigenschaften vor der Rückgabe des Eigenschaftswerts die RaiseExceptionIfNecessary-Methode aufrufen. Wenn der asynchrone Workercode der Komponente der Error-Eigenschaft eine Ausnahme zuweist oder die Cancelled-Eigenschaft auf true festlegt, löst die Eigenschaft eine Ausnahme aus, sobald ein Client versucht, ihren Wert zu lesen. Dadurch wird verhindert, dass Clients auf Eigenschaften zugreifen, die aufgrund eines Fehlers während des asynchronen Vorgangs möglicherweise nicht gültig sind.

Im folgenden Codebeispiel wird die Verwendung von RaiseExceptionIfNecessary in abgeleiteten Klasseneigenschaften veranschaulicht.


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



.NET Framework

Unterstützt in: 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft