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
[72088] Re:Re: BugFree님~ 혹시 이런식으로 쓰레드를 종료하신 다는 건가요~~~~?
그린비 [greenvy] 3509 읽음    2014-12-06 00:53
bugfree 님이 쓰신 글 :
: 그린비 님이 쓰신 글 :
: : 안녕하세요~!
: : 쌀쌀한 날씨에 관심 가져 주셔서 감사드립니다~~
: :
: :
: : 쓰레드를 처음 해보다 보니 많이 막히네요 ㅋ
: : 쓰레드 종료 관련하여 궁금한 부분 질문 드립니다.
: :
: :
: : 질문1) 쓰레드를 종료 할때 이런식으로 사용해도 괜찮은가요~?, 혹시 다른 방법을 써야 더 안전한가요?
: : TestThread->Terminate();
: : delete TestThread;
: : TestThread = NULL;
: :
: : 질문2) 서브 쓰레드가 동작 중에 메인 프로그램을 종료하게 되면, 자동으로 서브 쓰레드가 정상 종료 되는 건가요?
: :
: : 질문3) 만약 서브 쓰레드가 서버에 접속하여 파일을 전송 중인데, 이때 메인프로그램을 종료하게 되면
: : 서브 쓰레드가 동작은 완료하고 종료가 되나요? 아니면 중도에 강제 종료가 되버리나요?
: : 또한 그렇게 종료가 된다면, 서브 쓰레드는 정상적으로 종료가 되는 건가요~~?
: :
: :
: : 부디 조언 부탁 드립니다~~~~~!
: :
: :
:
: 쓰레드 소멸자에서 미리 만들어 놓은 이벤트 핸들을 날려 쓰레드
: 루프가 종료되게 해놓으면, 프로그램 종료 -> 폼객체 해제 ->
: 쓰레드 소멸자 -> 이벤트 -> 쓰레드 루프 종료
: 로 이어져서 쓰레드 신경쓸게 없던데요


우선 제가 원하는 건 프로그램이 종료 될 때, 서브 쓰레드를 잘 종료하는 것인데요

이런식으로 한다는 말씀인가요~??


FreeOnTerminate = true 로 놓고,
소멸자에서 Execute() 루프를 종료시킬 수 있도록 Terminate() 하는 것~??


//---------------------------------------------------------------------------
__fastcall TTestThread::~TTestThread(void)
{
    Terminate();
}

//---------------------------------------------------------------------------
void __fastcall TTestThread::Execute()
{
    //---- Place thread code here ----
   
    while(!Terminated)
    {
    }
}

그리고, 서브 쓰레드의 동작이 완료되는 걸 확인하고 종료하려면
TestThread->Terminate();
TestThread->WaitFor();
TestThread->Free();  or  Delete TestThread;
와 같은 방법을 사용 해야 할까요?

+ -

관련 글 리스트
72074 쓰레드 종료는 어떻게 하는 것인지 문의 드립니다~~! 그린비 3316 2014/12/04
72085     Re:쓰레드 종료는 어떻게 하는 것인지 문의 드립니다~~! aaaa 3438 2014/12/05
72087         Re:Re:쓰레드 종료는 어떻게 하는 것인지 문의 드립니다~~! 그린비 3483 2014/12/05
72077     Re:쓰레드 종료는 어떻게 하는 것인지 문의 드립니다~~! bugfree 3603 2014/12/04
72088         Re:Re: BugFree님~ 혹시 이런식으로 쓰레드를 종료하신 다는 건가요~~~~? 그린비 3509 2014/12/06
72082         Re:Re:쓰레드 종료는 어떻게 하는 것인지 문의 드립니다~~! 그린비 3692 2014/12/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.