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
[6893] [질문] Thread가 할일하고 놀고 있는지 확인하는 방법..
이필호 [xius] 2264 읽음    2001-04-18 15:46
Thread가 무한정 생성되는것이 아니기 때문에 일정갯수를 미리 생성해서 두고..

할일이 생기면 현재 놀고 있는 Thread에 일을 할당하고 실행시키고...

머 이렇게 하려고 합니다.

그런데 문제가 생기더군요..

TThread에 Suspended 라는 프로퍼티가 있긴 한데, 일을 끝내도 true로 설정되지 않아서 놀고 있는지 확인이 안됩니다.

Debug결과 TThread 의 Private변수인 FFinshed 는 true인데, FSuspended 는 false 이더군요...

private 변수인 FFinshed 에 접근하자니.. 안되고, Suspended 는 true로 설정되지 않구...

그래서 Thread에 일부러 Suspended = true; 로 코딩했으나 결과는 마찬가지더군요..

그래서 말인데요..

Thread가 현재 놀고 있는지 아님 먼 일을 하고 있는지 확인 하는 방법좀 알려주세요..

제가 한 코딩을 붙여넣겠습니다..

한수 부탁드립니다.... 그럼 이만..

---------------------------------------------------
Thread를 호출하는 쪽
---------------------------------------------------
    int i = 0;

    while(true)
    {
        for(i = 0; i < MAX_THREAD_COUNT; i++)
        {
            if(FThread[i]->Suspended)
            {
                FThread[i]->Resume();
                break;
            }
        }
        if(i >= MAX_THREAD_COUNT)
            continue;  // 쉬는 Thread가 없으면 다시 루프를 돌고..
        else
            break;     // 쉬는 Thread에 적절하게 했으면 루프를 빠져나간다.
    }


---------------------------------------------------
Thread execute() 함수
---------------------------------------------------
void __fastcall XThread::Execute()
{
    // 중간 생략....

    Suspended = true;
}


+ -

관련 글 리스트
6893 [질문] Thread가 할일하고 놀고 있는지 확인하는 방법.. 이필호 2264 2001/04/18
6953     Re:[질문] Thread가 할일하고 놀고 있는지 확인하는 방법.. 박지훈.임프 2519 2001/04/23
6964         Re:안녕하세요... 이필호입니다. 이필호 2316 2001/04/24
6982             Re:Re:안녕하세요... 이필호입니다. 박지훈.임프 2394 2001/04/24
6990                 에구.. 제가 잘못 이해한거네요.. 헤헤.. 답변 감사합니다.. (내용무) 이필호 2229 2001/04/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.