ICLRTask2::BeginPreventAsyncAbort — Metoda
Opóźnia żądania przerwania nowego wątku z powodu przerwania wątku w bieżącym wątku.
Składnia
HRESULT BeginPreventAsyncAbort();
Wartość zwracana
Ta metoda zwraca następujące określone elementy HRESULTs, a także błędy HRESULT wskazujące niepowodzenie metody.
HRESULT | Opis |
---|---|
S_OK | Metoda została ukończona pomyślnie. |
HOST_E_INVALIDOPERATION | Metoda została wywołana w wątku, który nie jest bieżącym wątkiem. |
Uwagi
Wywołanie tej metody zwiększa licznik delay-thread-abort dla bieżącego wątku po jednym.
Wywołania do BeginPreventAsyncAbort
i ICLRTask2::EndPreventAsyncAbort można zagnieżdżać. O ile licznik jest większy niż zero, przerwanie wątku dla bieżącego wątku jest opóźnione. Jeśli to wywołanie nie jest sparowane z wywołaniem EndPreventAsyncAbort
metody, można nawiązać połączenie ze stanem, w którym nie można dostarczyć wątków do bieżącego wątku.
Opóźnienie nie jest honorowane dla wątku, który przerywa się.
Funkcjonalność uwidoczniona przez tę funkcję jest używana wewnętrznie przez maszynę wirtualną. Niewłaściwe użycie tych metod może spowodować nieokreślone zachowanie na maszynie wirtualnej. Na przykład wywołanie bez pierwszego wywołania EndPreventAsyncAbort
BeginPreventAsyncAbort
może ustawić licznik na zero, gdy maszyna wirtualna wcześniej ją zwiększyła. Podobnie wewnętrzny licznik nie jest sprawdzany pod kątem przepełnienia. Jeśli przekroczy limit całkowity, ponieważ jest zwiększany zarówno przez hosta, jak i maszynę wirtualną, wynikowe zachowanie jest nieokreślone.
Wymagania
Platformy: Zobacz Wymagania systemowe.
Nagłówka: MSCorEE.h
Biblioteki: Uwzględnione jako zasób w MSCorEE.dll
wersje .NET Framework: dostępne od 4