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
[71825] [질문] Thread의 깔끔한 종료 처리(Resource 유실 없이..)
땅주인 [heaven2] 4245 읽음    2014-10-02 19:45
환경: RAD Studio XE5 ( C++ Builder XE5)

Thread를 사용 중입니다. TEvent로 Event를 전달하고 동작하도록 하였습니다.
Thread를 종료할 때 Sleep()을 쓰는 것이 좀 깨림찍한데요..

아래의 코드에서 Thread 종료 시킬 때 Sleep()으로 잠시 기다리는 것이 의미가 있는 것인 지?
그리고, Thread 종료 후 delete Thread했는데, Thread가 while 루프를 빠지면서 자동 종료하면 굳이 delete를 하지 않아도 되는 것 아닌 지?
// Main Thread
m_bAniThread = true
m_pAniThread = new TAniThread(false);// not suspend
...
// Thread 사용할 때
ThreadQueue->Push(*pData); // Thread에서 사용할 데이터 Queue에 Push
GAniEvent->SetEvent();   // Thread에 Event를 전달...
..
//Thread 종료할 때..
m_bAniThread = false;
GAniEvent->SetEvent();
Sleep(200);	           // 스레드가 종료될 때까지 잠깐 기다림 => 이거 필요할까? 
delete m_pAniThread; // 스레드가 자동 종료되면 이 코드가 필요할까요? 

Thread의 실행 코드
// TAniThread
TWaitResult Result;
while ( FormMain->m_bAniThread ) {
	Result = GAniEvent->WaitFor(1000);	// Wait 1 second
        ...
}
// While 루프 탈출 후 Thread 종료.. 


+ -

관련 글 리스트
71825 [질문] Thread의 깔끔한 종료 처리(Resource 유실 없이..) 땅주인 4245 2014/10/02
71831     Re:[질문] Thread의 깔끔한 종료 처리(Resource 유실 없이..) 장성호 4560 2014/10/03
71828     Re:[질문] Thread의 깔끔한 종료 처리(Resource 유실 없이..) 5833 2014/10/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.