ICLRTask2-Schnittstelle
Stellt die gesamte Funktionalität der ICLRTask-Schnittstelle bereit und bietet zusätzlich Methoden, mit denen Threadabbrüche im aktuellen Thread verzögert werden können.
Methoden
Methode | BESCHREIBUNG |
---|---|
BeginPreventAsyncAbort-Methode | Verzögert neue Threadabbruchanforderungen für den aktuellen Thread. |
EndPreventAsyncAbort-Methode | Ermöglicht, dass neue oder ausstehende Threadabbruchanforderungen zu Threadabbrüchen im aktuellen Thread führen. |
Bemerkungen
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 des Codes zu schützen, der nicht fehlschlagen darf. Durch den Aufruf von BeginPreventAsyncAbort
wird der Zähler für den verzögerten Threadabbruch für den aktuellen Thread erhöht und durch den Aufruf von EndPreventAsyncAbort
verringert. Aufrufe von BeginPreventAsyncAbort
und EndPreventAsyncAbort
können geschachtelt werden. Solange der Zähler größer als 0 ist, werden Threadabbrüche für den aktuellen Thread verzögert.
Wenn Aufrufe von BeginPreventAsyncAbort
und EndPreventAsyncAbort
nicht gekoppelt 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 diesem Feature verfügbar gemacht wird, wird intern vom virtuellen Computer (VM) verwendet. Der Missbrauch dieser Methoden kann zu nicht spezifiziertem Verhalten in der VM führen. Beispielsweise könnte der Aufruf von EndPreventAsyncAbort
, ohne zunächst BeginPreventAsyncAbort
aufzurufen, den Zähler auf 0 festlegen, wenn die VM ihn zuvor erhöht hat. Ebenso wird der interne Zähler nicht auf Überlauf überprüft. Wenn er seinen integralen Grenzwert überschreitet, da er sowohl vom Host als auch vom virtuellen Computer erhöht wird, ist das resultierende Verhalten nicht spezifiziert.
Informationen zu den von ICLRTask
geerbten Mitgliedern und zu den anderen Zwecken dieser Schnittstelle finden Sie in den Angaben zur ICLRTask-Schnittstelle.
Anforderungen
Plattformen: Informationen finden Sie unter Systemanforderungen.
Header: MSCorEE.h
Bibliothek: Als Ressource in „MsCorEE.dll“ enthalten.
.NET Framework-Versionen: seit Version 4 verfügbar