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
[58012] 답변 감사합니다.
leo21c [leo21c] 1151 읽음    2009-08-11 12:16
Help를 자세히 보도록 노력하겠습니다.
정확하게 이해 했고 프로그램 테스트 결과 정상적인 것을 확인했습니다.
많은 도움 감사합니다.


ㄱㄴ 님이 쓰신 글 :
: 57996번글에서도 말씀드렸습니다만,
: WIN32 API 함수인 WaitForMultipleObjects 도움말을 보면 아래와 같은데
: 이에 따르면,   bWaitAll 이 TRUE인 경우에는 반환값이  WAIT_OBJECT_0 부터 (WAIT_OBJECT_0 + nCount - 1) 사이의 어떤 값이든 전달한 핸들의 오브젝트들이 모두 시그널드 상태라고 합니다. 예를 들어, 전달한 핸들이 스레드 핸들들이라면 해당 스레드들이 모두 종료되었음(terminate)을 뜻하는 것이죠.
: Return Value: WAIT_OBJECT_0 to (WAIT_OBJECT_0 + nCount - 1)
: Meaning: If bWaitAll is TRUE, the return value indicates that the state of all specified objects is signaled.
: If bWaitAll is FALSE, the return value minus WAIT_OBJECT_0 indicates the lpHandles array index of the object that satisfied the wait. If more than one object became signalled during the call, this is the array index of the signalled object with the smallest index value of all the signalled objects.
:
:    index = 0;
:    int i, k;
:    unsigned a;
:    for (i = 0; i < THREAD_COUNT; i++) {
:      thread[i] = new ImpThread(i);
:      handle = (HANDLE)thread[i]->Handle; //handle 배열의 각 원소의 값은 HANDLE 형이어야 함
:    }
:    Sleep(10);

:    dwWaitResult = WaitForMultipleObjects(THREAD_COUNT, handle, TRUE, INFINITE);

:    if (dwWaitResult>=WAIT_OBJECT_0  && dwWaitResult<=WAIT_OBJECT_0 + THREAD_COUNT - 1) {
:       //성공
:    }
:    else {
:      //실패
:    }
:
: 한편, TThread의 Handle에 대한 도움말을 보면 아래와 같습니다. 즉, Handle은 WIN32 API에 사용할 수 있는 유효한 핸들이라는 뜻입니다. HANDLE 형으로 형변환해서 WIN32 API 함수에 넘겨주면 되는 것입니다.
: TThread::Handle
: Contains the thread's handle.
: __property int Handle = {read=FHandle, nodefault};
: Description
: Use Handle when calling Win32 API functions for thread manipulation.
:
: 끝으로, 질문 내용을 보면, 배열과 포인터의 관계에 대해 더 깊은 공부가 있어야 할 것으로 보입니다.

+ -

관련 글 리스트
57971 TThread 테스트 프로그래밍 중에 WaitForMultipleObjects()함수 문제 leo21c 1974 2009/08/07
58004     Re: 반환값 검사가 잘못되었어요 ㄱㄴ 1691 2009/08/11
58012         답변 감사합니다. leo21c 1151 2009/08/11
57998     Re:TThread 테스트 프로그래밍 중에 WaitForMultipleObjects()함수 문제 김진호.불사새 1864 2009/08/10
58003         bWaitAll을 TRUE로 세팅한 것은 모든 Thread를 기다리기 위해서입니다. leo21c 1497 2009/08/11
57996     Re:TThread 테스트 프로그래밍 중에 WaitForMultipleObjects()함수 문제 ㄱㄴ 2041 2009/08/10
57981     Re:Thread 테스트 프로그래밍 중에 WaitForMultipleObjects()함수 문제 ㄱㄴ 1229 2009/08/09
57991         TThread의 Handle과 CreateThread의 ThreadID와 같지 않나요? leo21c 1886 2009/08/10
57994             Re:TThread의 Handle과 CreateThread의 ThreadID와 같지 않나요? 장성호 1819 2009/08/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.