Метод ICorDebugThread::SetDebugState

Задает флаги, описывающие состояние отладки этого ICorDebugThread.

Синтаксис

HRESULT SetDebugState (  
    [in] CorDebugThreadState state  
);  

Параметры

state
[in] Побитовое сочетание значений перечисления CorDebugThreadState, задающих состояние отладки этого потока.

Комментарии

SetDebugState задает текущее состояние отладки потока. (Текущее состояние отладки представляет состояние отладки, если процесс должен был быть продолжен, а не фактическое текущее состояние.) Обычное значение для этого параметра — THREAD_RUN. Только отладчик может влиять на состояние отладки потока. Состояния отладки выполняются в течение последнего времени, поэтому если вы хотите сохранить поток THREAD_SUSPENDed по нескольким продолжениям, вы можете установить его один раз, а затем не беспокоиться об этом. Приостановка потоков и возобновление процесса могут привести к взаимоблокировкам, хотя обычно это маловероятно. Это внутреннее качество потоков и процессов, и оно является по умолчанию. Отладчик может асинхронно прерывать и возобновлять потоки, чтобы разорвать взаимоблокировку. Если пользовательское состояние потока включает USER_UNSAFE_POINT, поток может блокировать сборку мусора (GC). Это означает, что приостановленный поток имеет гораздо более высокую вероятность возникновения взаимоблокировки. Это может не повлиять на события отладки, уже помещенные в очередь. Таким образом, отладчик должен очистить всю очередь событий (путем вызова ICorDebugController::HasQueuedCallbacks) перед приостановкой или возобновлением потоков. В противном случае он может получить события в потоке, который, по его мнению, уже приостановлен.

Требования

Платформы: см. раздел Требования к системе.

Заголовок: CorDebug.idl, CorDebug.h

Библиотека: CorGuids.lib

версии платформа .NET Framework: доступно с версии 1.0.