2011-01-05 2 views
1



이 응용 프로그램이 있기 때문에 시스템에서 스레드의 현재 상태를 유도 할 수있는 기능이 있어야합니다 : http://www.softwareverify.com/cpp/thread-status-monitor/index.html받고 C에서 스레드 상태 ++/창

그것은 API의 일종을 사용하고 있어야합니다 함수 또는 뭔가 ... C++/Windows에서 스레드 상태를 직접 가져올 수 있습니까?
감사합니다 :)

(이 오늘은 내 마지막 질문입니다 나는 :) 약속드립니다.) Toolhelp 라이브러리를 통해 이루어집니다

+0

관심의 대상에서 스레드 상태 응용 프로그램 (무료)을 다운로드하여 사용해 보았습니다. XP에서 프로세스, 따라서 스레드 정보를 표시하지 않으므로 Vista/Win7에서만 사용할 수있는 API 호출을 사용한다고 가정 할 수 있습니다. – Tony

답변

1

당신은에 다음 예제를 사용할 수 있습니다 실행중인 프로세스와 프로세스 ID가 있으면 스레드를 가져옵니다.

Taking a Snapshot and Viewing Processes

Traversing the Thread List

편집 : 스레드 (들) 당신이 GetExitCodeThread를 호출 할 수 있습니다 당신에 관심이 있지만, 스레드가 STILL_ACTIVE 인 경우가 끝날 때까지 그는 당신을 말할 것이다에 핸들을 점점 후 , 종료 코드를 찾을 수 있습니다.

귀하의 의견에 대한 추가 정보를 검색하는 동안 나는 또한 this thread에 관심을 가질 수 있습니다.

+0

ok, 그러나 스레드 상태를 보유하고있는 THREADENTRY32는 어디에도 보이지 않습니다 ... – Idov

+0

@ldov : 귀하의 의견에 대한 응답으로 내 대답에 대한 더 많은 정보를 추가했습니다. – Tony

1

WMI에서 가장 많은 것을 얻었습니다. Win32_Thread class. 링크 된 기사에는 필요한 C++ 코드에 대한 링크가 있습니다. WMI 코드 작성 도구를 사용해보십시오.

+0

좋습니다.이 WMI를 사용해 보겠습니다.하지만 코드 작성기 도구는 .Net 언어 ... – Idov

+0

용입니다. 알다시피, 너무 작은 코드로 스크립팅 언어로이 작업을 수행 할 수 있습니다. 그러나 쿼리 자체는 모든 언어에서 동일합니다. 이 도구를 사용하여 C++ 코드가 제대로 작동하는지 확인하십시오. –