如何通过评测API读取System.Threading.ThreadState(IC.ProfilerInfo或任何IM



是否有方法通过从非托管代码中评测API IC.ProfilerInfo或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
}

您可以使用ICorDebug.GetProcess获取ICorDebugProcess,从中可以通过调用GetThread获取ICorDebugThread。然后调用GetUserState获取CorDebugUserState。不过,在使用ICorDebug时要注意,调试器和被调试对象必须是不同的进程。

相关内容

  • 没有找到相关文章

最新更新