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 起可用