2

プロファイリングAPIICofProfilerInfoまたはIMetadataImportインターフェイス、あるいはアンマネージコードから他の方法でマネージスレッドのSystem.Thread.ThreadStateプロパティを読み取る方法はありますか?

たとえば、次のようなものです。

ICorProfilerInfo3 pProfilerInfo = ...;
ThreadID threadId;
pProfilerInfo->GetCurrentThreadID(&threadId);
ThreadState threadState;
pSomethingWhatINeed->GetManagedTheadState(threadId, &threadState);
if(threadState == THREADSTATE_WAIT_JOIN_SLEEP){
  //do something
}
4

1 に答える 1

3

を使用ICorDebug.GetProcessして取得できます。から、を呼び出すICorDebugProcessことで取得できます。次に、を呼び出してCorDebugUserStateを取得します。ただし、ICorDebugデバッガーとdebugeeを使用する場合は、異なるプロセスである必要があることに注意してください。ICorDebugThreadGetThreadGetUserState

于 2011-11-26T17:20:42.213 に答える