C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[72338] Re:[질문] Thread의 Wait 상태 여부 알기
[] 3639 읽음    2015-02-08 03:20
돌맹이 님이 쓰신 글 :
: Thread가 WaitForSingleObject()로 기다리다가, Event가 도착하면,
: 해당 기능을 동작하고 다시 WaitForSingleObject()로 기다리게 되어 있는데요..
:
: Thread 외부에서 해당 Thread가 WaitForSingleObject()에서 기다리고 있는 지,..
: 아니면 어떤 동작을 하고 있는 지를 파악할 수 있나요?
:
: 코드로 본다면
:
:
////////////////////////////////////////////////////////////////////
: // Thread body 부분
: TThread::Execute()
: {
:     ....
:     while ( 1 ) {
:         ..
:         WaitForSingleObject();
:         ...
:         // Do Something
:         ...
: }
: ////////////////////////////////////////////////////////////////////
: 
: 
: ////////////////////////////////////////////////////////////////////
: // 사용할 때
: ////////////////////////////////////////////////////////////////////
: TThread *pThread = new TThread();
: 
: if ( pThread->IsWorking() ) {  // 일반 동작 중(기다리는 상태가 아님
:     // Do Something
: } else {                                   // WaitForSingleObject()에서 기다리는 상태
:     // Do Something
: }

:
: 핵심은 pThread->IsWorking()함수를 쓸 수 있느냐 인 것입니다.
: 아니면 따로 만들어야 하나요?
:
:

NtQueryInfo라는 언도큐먼티드 API를 이용하면 원하는 정보를 얻을 수 있습니다.
언도큐먼티드 API지만 XT, WIN7, WIN8 에서 모두 동작합니다.
이 API는 제공하는 기능도 다양하고, 시스템 유틸리티에서 워낙 많이 사용되고 있기 때문에
MS가 차후 OS 버전에서 지원 안할리는 없을 겁니다.

+ -

관련 글 리스트
72329 [질문] Thread의 Wait 상태 여부 알기 돌맹이 3459 2015/02/05
72338     Re:[질문] Thread의 Wait 상태 여부 알기 3639 2015/02/08
72339         Re:Re:[질문] Thread의 Wait 상태 여부 알기 3619 2015/02/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.