2
Profiling API ICofProfilerInfo 또는 IMetadataImport 인터페이스를 사용하여 관리되는 스레드의 System.Thread.ThreadState 속성을 읽는 방법이 있습니까? 또는 관리되지 않는 코드의 다른 방법? 이 같은프로파일 링 API (ICofProfilerInfo 또는 기타 IMetadataImport 또는 기타 방법)로 System.Threading.Thread.ThreadState를 읽는 방법
예를 들어 뭔가 :
ICorProfilerInfo3 pProfilerInfo = ...;
ThreadID threadId;
pProfilerInfo->GetCurrentThreadID(&threadId);
ThreadState threadState;
pSomethingWhatINeed->GetManagedTheadState(threadId, &threadState);
if(threadState == THREADSTATE_WAIT_JOIN_SLEEP){
//do something
}
위대한 아이디어와 유용한 힌트이지만 ICorProfiler를 많이 사용하는 프로세스에서이 정보를 얻을 필요가 있습니다. – Honzajscz
내 원래의 대답이 충분하지 않았던 것 같아요. 편집했습니다. ICorDebug와 ICorProfiler를 다른 프로세스의 한 프로세스에서 동시에 사용할 수 있습니다. 내 요점은 프로세스가 ICorDebug를 사용하여 자체 디버깅을 할 수 없다는 것입니다 (ICorProfiler와는 달리 - 프로세스가 자체 프로파일 러일 수 있음). – MagnatLU