ICLRTask2::BeginPreventAsyncAbort, méthode
Diffère les nouvelles demandes d'abandon de thread, provoquant des abandons de thread sur le thread actuel.
HRESULT BeginPreventAsyncAbort();
Valeur de retour
Cette méthode retourne les HRESULT spécifiques suivants ainsi que les erreurs HRESULT qui indiquent l'échec de la méthode.
HRESULT |
Description |
---|---|
S_OK |
La méthode 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 de délai d'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 pour le thread actuel sont retardés. 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 délai n'est pas honoré pour un thread qui s'abandonne lui-même.
La fonctionnalité qui est exposée par cette fonctionnalité est utilisée en interne par la machine virtuelle. L'utilisation incorrecte de ces méthodes peut provoquer un comportement non spécifié dans la machine virtuelle. Par exemple, le fait d'appeler EndPreventAsyncAbort sans appeler auparavant BeginPreventAsyncAbort peut mettre le compteur à zéro alors que la machine virtuelle l'a précédemment incrémenté. De même, le compteur interne ne fait pas l'objet d'une vérification de dépassement de capacité. S'il dépasse sa limite intégrale parce qu'il est incrémenté par l'hôte et la machine virtuelle, le comportement résultant n'est pas spécifié.
Configuration requise
Plateformes : consultez Configuration requise du .NET Framework.
En-tête : MSCorEE.h
Bibliothèque : incluse en tant que ressource dans MSCorEE.dll
Versions du .NET Framework : 4
Voir aussi
Référence
ICLRTask2::EndPreventAsyncAbort, méthode