ICLRTask2-Schnittstelle
Stellt alle Funktionen der ICLRTask-Schnittstelle und außerdem Methoden bereit, die das Verzögern von Threadabbrüchen für den aktuellen Thread ermöglichen.
Methoden
Methode |
Beschreibung |
---|---|
Verzögert neue Threadabbruchanforderungen für den aktuellen Thread. |
|
Ermöglicht, dass neue oder ausstehende Threadabbruchanforderungen zu Threadabbrüchen für den aktuellen Thread führen. |
Hinweise
Die ICLRTask2-Schnittstelle erbt die ICLRTask-Schnittstelle und fügt Methoden hinzu, die es dem Host ermöglichen, Threadabbrüche zu verzögern, um einen Bereich von Code zu schützen, der nicht fehlschlagen darf. Durch den Aufruf von BeginPreventAsyncAbort wird der Zähler für die Verzögerung des Threadabbruchs des aktuellen Threads erhöht, und durch den Aufruf von EndPreventAsyncAbort wird der Zähler verringert. Aufrufe von BeginPreventAsyncAbort und EndPreventAsyncAbort können geschachtelt werden. Solange der Zähler größer als 0 (null) ist, werden Threadabbrüche für den aktuellen Thread verzögert.
Wenn Aufrufe von BeginPreventAsyncAbort und EndPreventAsyncAbort nicht einander zugeordnet sind, kann ein Zustand erreicht werden, in dem Threadabbrüche nicht an den aktuellen Thread übermittelt werden können.
Die Verzögerung wird für einen Thread, der sich selbst abbricht, nicht berücksichtigt.
Die Funktionalität, die von dieser Funktion verfügbar gemacht wird, wird intern vom virtuellen Computer (VM) verwendet. Die nicht ordnungsgemäße Verwendung dieser Methoden verursacht möglicherweise nicht definiertes Verhalten in der VM. Beispielsweise kann durch Aufrufen von EndPreventAsyncAbort ohne vorhergehenden Aufruf von BeginPreventAsyncAbort der Zähler auf 0 (null) festgelegt werden, wenn dieser zuvor von der VM erhöht wurde. Entsprechend wird der interne Zähler nicht auf einen Überlauf überprüft. Wenn er die Grenze für ganze Zahlen überschreitet, weil er sowohl vom Host als auch von der VM erhöht wird, ist das daraus folgende Verhalten undefiniert.
Informationen zu Membern, die von ICLRTask geerbt werden, und zu anderen Verwendungsmöglichkeiten dieser Schnittstelle finden Sie unter der ICLRTask-Schnittstelle.
Anforderungen
Plattformen: siehe Systemanforderungen für .NET Framework.
Header: MSCorEE.h
Bibliothek: als Ressource in MSCorEE.dll enthalten
.NET Framework-Versionen: 4
Siehe auch
Referenz
IHostTaskManager-Schnittstelle