2
有沒有辦法通過分析API讀取託管線程的System.Thread.ThreadState屬性ICofProfilerInfo或IMetadataImport接口或從非託管代碼的任何其他方式?如何通過分析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