Partager via


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

Voir aussi