ICorDebugThread::SetDebugState — Metoda
Ustawia flagi opisujące stan debugowania tego elementu ICorDebugThread.
Składnia
HRESULT SetDebugState (
[in] CorDebugThreadState state
);
Parametry
state
[in] Bitowa kombinacja wartości wyliczenia CorDebugThreadState, które określają stan debugowania tego wątku.
Uwagi
SetDebugState
Ustawia bieżący stan debugowania wątku. (Bieżący stan debugowania reprezentuje stan debugowania, jeśli proces miał być kontynuowany, a nie rzeczywisty bieżący stan). Wartość normalna dla tej wartości to THREAD_RUN. Tylko debuger może mieć wpływ na stan debugowania wątku. Stany debugowania trwają w dalszym ciągu, więc jeśli chcesz zachować wątek THREAD_SUSPENDed przez wiele kontynuacji, możesz ustawić go raz i później nie trzeba się tym martwić. Wstrzymywanie wątków i wznawianie procesu może spowodować zakleszczenia, choć zwykle jest mało prawdopodobne. Jest to wewnętrzna jakość wątków i procesów i jest by-design. Debuger może asynchronicznie przerwać i wznowić wątki w celu przerwania zakleszczenia. Jeśli stan użytkownika wątku zawiera USER_UNSAFE_POINT, wątek może zablokować odzyskiwanie pamięci (GC). Oznacza to, że zawieszony wątek ma znacznie większą szansę na spowodowanie zakleszczenia. Może to nie mieć wpływu na zdarzenia debugowania, które już są umieszczone w kolejce. W związku z tym debuger powinien opróżnić całą kolejkę zdarzeń (wywołując element ICorDebugController::HasQueuedCallbacks) przed wstrzymaniem lub wznowieniem wątków. W przeciwnym razie może on pobierać zdarzenia w wątku, który uważa, że został już zawieszony.
Wymagania
Platformy: zobacz Wymagania systemowe.
Nagłówek: CorDebug.idl, CorDebug.h
Biblioteka: CorGuids.lib
Wersje programu .NET Framework: dostępne od wersji 1.0