Exportieren (0) 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

ThreadInterruptedException-Klasse

Die Ausnahme, die ausgelöst wird, wenn ein Thread im Wartezustand unterbrochen wird.

System.Object
  System.Exception
    System.SystemException
      System.Threading.ThreadInterruptedException

Namespace:  System.Threading
Assembly:  mscorlib (in mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public class ThreadInterruptedException : SystemException

Der ThreadInterruptedException-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeThreadInterruptedException()Initialisiert eine neue Instanz der ThreadInterruptedException-Klasse mit Standardeigenschaften.
Öffentliche MethodeThreadInterruptedException(String)Initialisiert eine neue Instanz der ThreadInterruptedException-Klasse mit einer angegebenen Fehlermeldung.
Geschützte MethodeThreadInterruptedException(SerializationInfo, StreamingContext)Initialisiert eine neue Instanz der ThreadInterruptedException-Klasse mit serialisierten Daten.
Öffentliche MethodeThreadInterruptedException(String, Exception)Initialisiert eine neue Instanz der ThreadInterruptedException-Klasse mit einer angegebenen Fehlermeldung und einem Verweis auf die innere Ausnahme, die diese Ausnahme ausgelöst hat.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftDataRuft eine Auflistung von Schlüssel-Wert-Paaren ab, die zusätzliche benutzerdefinierte Informationen zu der Ausnahme bereitstellen. (Von Exception geerbt.)
Öffentliche EigenschaftHelpLinkRuft einen Link zur Hilfedatei ab, die dieser Ausnahme zugeordnet ist, oder legt einen Link fest. (Von Exception geerbt.)
Öffentliche EigenschaftHResultRuft HRESULT ab oder legt HRESULT fest. Dies ist ein codierter Wert, der einer bestimmten Ausnahme zugeordnet ist. (Von Exception geerbt.)
Öffentliche EigenschaftInnerExceptionRuft die Exception-Instanz ab, die die aktuelle Ausnahme verursachte. (Von Exception geerbt.)
Öffentliche EigenschaftMessageRuft eine Meldung ab, die die aktuelle Ausnahme beschreibt. (Von Exception geerbt.)
Öffentliche EigenschaftSourceGibt den Namen der Anwendung oder des Objekts zurück, das den Fehler verursacht hat, oder legt diesen fest. (Von Exception geerbt.)
Öffentliche EigenschaftStackTraceRuft eine Zeichenfolgendarstellung der unmittelbaren Frames in der Aufrufliste ab. (Von Exception geerbt.)
Öffentliche EigenschaftTargetSiteRuft die Methode ab, die die aktuelle Ausnahme auslöst. (Von Exception geerbt.)
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeEquals(Object)Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Geschützte MethodeFinalize Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche MethodeGetBaseExceptionGibt beim Überschreiben in einer abgeleiteten Klasse eine Exception zurück, die die ursprüngliche Ursache für eine oder mehrere nachfolgende Ausnahmen ist. (Von Exception geerbt.)
Öffentliche MethodeGetHashCodeFungiert als die Standardhashfunktion. (Von Object geerbt.)
Öffentliche MethodeGetObjectDataLegt beim Überschreiben in einer abgeleiteten Klasse die SerializationInfo mit Informationen über die Ausnahme fest. (Von Exception geerbt.)
Öffentliche MethodeGetTypeRuft den Laufzeittyp der aktuellen Instanz ab. (Von Exception geerbt.)
Geschützte MethodeMemberwiseCloneErstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche MethodeToStringErstellt eine Zeichenfolgenentsprechung der aktuellen Ausnahme und gibt diese zurück. (Von Exception geerbt.)
Zum Seitenanfang

  NameBeschreibung
Geschütztes EreignisSerializeObjectStateTritt auf, wenn eine Ausnahme serialisiert wird, um ein Ausnahmezustandsobjekt zu erstellen, das serialisierte Daten für die Ausnahme enthält. (Von Exception geerbt.)
Zum Seitenanfang

Ein Thread befindet sich nach seiner Erstellung bis zu seiner Zerstörung in einem oder mehreren ThreadState-Zuständen. Wenn ein Thread sich im WaitSleepJoin-Zustand befindet, bewirkt der Aufruf von Interrupt, dass im Zielthread eine ThreadInterruptedException ausgelöst wird. Wenn der Thread sich nicht im WaitSleepJoin-Zustand befindet, wird die Ausnahme erst ausgelöst, wenn der Thread in diesen Zustand wechselt. Wenn der Thread nie blockiert wird, kann er ohne jegliche Unterbrechung abgeschlossen werden.

ThreadInterruptedException verwendet HRESULT COR_E_ THREADINTERRUPTED mit dem Wert 0x80131519.

Eine Liste der anfänglichen Eigenschaftswerte für eine Instanz von ThreadInterruptedException finden Sie unter ThreadInterruptedException-Konstruktoren.

Das folgende Codebeispiel veranschaulicht das Verhalten eines ausgeführten Threads, wenn dieser unterbrochen und anschließend gesperrt wird.


using System;
using System.Security.Permissions;
using System.Threading;

class ThreadInterrupt
{
    static void Main()
    {
        StayAwake stayAwake = new StayAwake();
        Thread newThread = 
            new Thread(new ThreadStart(stayAwake.ThreadMethod));
        newThread.Start();

        // The following line causes an exception to be thrown 
        // in ThreadMethod if newThread is currently blocked
        // or becomes blocked in the future.
        newThread.Interrupt();
        Console.WriteLine("Main thread calls Interrupt on newThread.");

        // Tell newThread to go to sleep.
        stayAwake.SleepSwitch = true;

        // Wait for newThread to end.
        newThread.Join();
    }
}

class StayAwake
{
    bool sleepSwitch = false;

    public bool SleepSwitch
    {
        set{ sleepSwitch = value; }
    }

    public StayAwake(){}

    public void ThreadMethod()
    {
        Console.WriteLine("newThread is executing ThreadMethod.");
        while(!sleepSwitch)
        {
            // Use SpinWait instead of Sleep to demonstrate the 
            // effect of calling Interrupt on a running thread.
            Thread.SpinWait(10000000);
        }
        try
        {
            Console.WriteLine("newThread going to sleep.");

            // When newThread goes to sleep, it is immediately 
            // woken up by a ThreadInterruptedException.
            Thread.Sleep(Timeout.Infinite);
        }
        catch(ThreadInterruptedException e)
        {
            Console.WriteLine("newThread cannot go to sleep - " +
                "interrupted by main thread.");
        }
    }
}


.NET Framework

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

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

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.

Alle öffentlichen static (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft