Udostępnij za pośrednictwem


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 EndPreventAsyncAbortBeginPreventAsyncAbort 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

Zobacz też