ICLRTask2::BeginPreventAsyncAbort-Methode
Verzögert neue Threadabbruchanforderungen, die zu Threadabbrüchen für den aktuellen Thread führen.
Syntax
HRESULT BeginPreventAsyncAbort();
Rückgabewert
Diese Methode gibt die folgenden spezifischen HRESULTs sowie HRESULT-Fehler zurück, die Methodenfehler anzeigen.
HRESULT | BESCHREIBUNG |
---|---|
S_OK | Die Methode wurde erfolgreich abgeschlossen. |
HOST_E_INVALIDOPERATION | Die Methode wurde für einen Thread aufgerufen, der nicht der aktuelle Thread ist. |
Bemerkungen
Durch Aufrufen dieser Methode wird der delay-thread-abort-Zähler für den aktuellen Thread um eins erhöht.
Aufrufe von BeginPreventAsyncAbort
und ICLRTask2::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 dieser Aufruf nicht mit einem Aufruf der EndPreventAsyncAbort
-Methode gekoppelt ist, 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 angegeben.
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.