ICorDebugThread::SetDebugState 方法
設定可描述此 ICorDebugThread 之偵錯狀態的旗標。
HRESULT SetDebugState (
[in] CorDebugThreadState state
);
參數
- state
[in] CorDebugThreadState 列舉值的位元組合,指定此執行緒的偵錯狀態。
備註
SetDebugState 會設定此執行緒的目前偵錯狀態 (「目前偵錯狀態」表示處理序若要繼續時的偵錯狀態,而非實際的目前狀態)。其正常值為 THREAD_RUNNING。 只有偵錯工具會影響執行緒的偵錯狀態。 偵錯狀態會持續多個繼續,所以若要在多個繼續保留執行緒 THREAD_SUSPENDed,可以設定一次,此後便不需煩惱。 暫止執行緒和繼續此處理序,可能會造成死結 (雖然這通常是不可能的)。 這是執行緒和處理序的內建品質,而且是依設計的。 偵錯工具可以非同步中斷和繼續執行緒,以中斷死結。 如果執行緒的使用者狀態包含 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