ICLRTask2::BeginPreventAsyncAbort, méthode
Retarde les nouvelles demandes d’abandon de thread pour qu’elles n’entraînent pas l’abandon du thread actuel.
Syntaxe
HRESULT BeginPreventAsyncAbort();
Valeur de retour
Cette méthode retourne les HRESULT spécifiques suivants ainsi que les erreurs HRESULT indiquant l'échec de la méthode.
HRESULT | Description |
---|---|
S_OK | La commande s'est correctement terminée. |
HOST_E_INVALIDOPERATION | La méthode a été appelée sur un thread qui n’est pas le thread actuel. |
Notes
L’appel de cette méthode incrémente de 1 le compteur retard-thread-abandon pour le thread actuel.
Les appels à BeginPreventAsyncAbort
et ICLRTask2::EndPreventAsyncAbort peuvent être imbriqués. Tant que le compteur est supérieur à zéro, les abandons de thread sont retardés pour le thread actuel. Si cet appel n’est pas associé à un appel à la méthode EndPreventAsyncAbort
, il est possible d’atteindre un état dans lequel les abandons de thread ne peuvent pas être remis au thread actuel.
Le retard n’est pas respecté pour un thread qui abandonne lui-même.
La fonctionnalité exposée est utilisée en interne par la machine virtuelle. Une mauvaise utilisation de ces méthodes peut entraîner un comportement non spécifié dans la machine virtuelle. Par exemple, l’appel de EndPreventAsyncAbort
sans appel préalable de BeginPreventAsyncAbort
peut remettre le compteur à zéro alors que la machine virtuelle l’a préalablement incrémenté. De même, le dépassement du compteur interne n’est pas vérifié. S’il dépasse sa limite intégrale parce qu’il est incrémenté à la fois par l’hôte et par la machine virtuelle, le comportement qui en résulte n’est pas spécifié.
Spécifications
Plateformes : Consultez Configuration requise.
En-tête : MSCorEE.h
Bibliothèque : incluse en tant que ressource dans MsCorEE.dll
Versions de .NET Framework : Disponibles depuis 4