ICLRTask2 — Interfejs
Zapewnia wszystkie funkcje interfejsu ICLRTask ; Ponadto udostępnia metody, które umożliwiają opóźnianie przerywania wątków w bieżącym wątku.
Metody
Metoda | Opis |
---|---|
BeginPreventAsyncAbort, metoda | Opóźnia żądania przerwania nowego wątku w bieżącym wątku. |
EndPreventAsyncAbort, metoda | Umożliwia przerwanie nowych lub oczekujących żądań przerwania wątku w celu przerwania wątku w bieżącym wątku. |
Uwagi
Interfejs ICLRTask2
dziedziczy ICLRTask
interfejs i dodaje metody, które umożliwiają hostowi opóźnienie przerwania wątków w celu ochrony regionu kodu, który nie może zakończyć się niepowodzeniem. Wywołanie BeginPreventAsyncAbort
inkrementuje licznik delay-thread-abort dla bieżącego wątku i wywołuje EndPreventAsyncAbort
go. Wywołania do BeginPreventAsyncAbort
i EndPreventAsyncAbort
mogą być zagnieżdżone. O ile licznik jest większy niż zero, przerywane wątki dla bieżącego wątku są opóźnione.
Jeśli wywołania metody BeginPreventAsyncAbort
i EndPreventAsyncAbort
nie są sparowane, można uzyskać dostęp do stanu, w którym przerywanie wątku nie może zostać dostarczone do bieżącego wątku.
Opóźnienie nie jest honorowane dla wątku, który przerywa się.
Funkcje udostępniane przez tę funkcję są używane wewnętrznie przez maszynę wirtualną. Nieprawidłowe 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 licznik wewnętrzny 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.
Aby uzyskać informacje o elementach dziedziczynych z ICLRTask
i innych zastosowań tego interfejsu, zobacz interfejs ICLRTask .
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