ICorDebugThread::SetDebugState 方法

设置描述此 ICorDebugThread 的调试状态的标志。

HRESULT SetDebugState (
    [in] CorDebugThreadState state
);

参数

  • state
    [in] CorDebugThreadState 枚举值的按位组合,这些值指定此线程的调试状态。

备注

SetDebugState 可设置线程的当前调试状态。 (“当前调试状态”表示进程之前是否继续的调试状态,而非实际的当前状态。)通常情况下,它的值为 THREAD_RUNNING。 只有调试器才能影响线程的调试状态。 调试状态可以在多次继续后保持,因此如果需要在多次继续后仍使某个线程保持 THREAD_SUSPEND,您只需设置一次,以后便不必再担心了。 挂起线程和继续进程可能会导致死锁,但这通常不太可能发生。 这是线程和进程的本质,是由设计造成的。 调试器可以异步中断和继续线程,以中断死锁。 如果线程的用户状态包括 USER_UNSAFE_POINT,则该线程可能会阻止垃圾回收 (GC)。 这意味着,挂起的线程更可能导致死锁。 这不会影响已排队的调试事件。 因此,在挂起或继续线程之前,调试器应耗尽整个事件队列(方法是调用 ICorDebugController::HasQueuedCallbacks)。 否则,调试器可能会获取它认为已挂起的线程上的事件。

要求

**平台:**请参见 .NET Framework 系统要求

头文件: CorDebug.idl、CorDebug.h

**库:**CorGuids.lib

**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0

请参见

参考

ICorDebugThread 接口

ICorDebugThread2 接口