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
[25707] [질문] TThread 관련 질문입니다..
강영준 [k700k] 658 읽음    2003-05-22 11:41
file -> new -> Thread Object 루 Thread를 하나 만들고 나서

메인 폼에서.

Com1Thread* Com1Th;

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   Com1Th = new Com1Thread(true);
}

void __fastcall TForm1::Button2Click(TObject *Sender)
{
     Com1Th->Terminate();
     delete Com1Th;
}

이렇게 버튼 1번을 누르면 Thread 실행 2번을 누르면 Thread 종료...

근데 문제는 실행 버튼인 1번을 연속으로 여러번 누를 경우 여러개의 쓰래드가

계속 생깁니다.. 그리구 2번 버튼으로 쓰래드를 파기 할경우 한번눌러 준후

한번더 누르게 되면 프로그램이 다운되어 버립니다.

물론 여러번 실행 버튼을 눌러 쓰래드를 생성했을경우 종료 버튼을 어려번 눌러 버리면

프로그램 다운됩니다..

한번 생성된 쓰래드를 파기 할경우 api 에 보면

ExitThread, TerminateThread 이렇게 두개가 있든데요..

ExitThread 는 관련 DLL등 모두 다 종료를 하고 쓰래드 스스로 파기를 하게끔하고.

TerminateThread 는 급할경우 바로 쓰래드를 종료 해버린다고 설명이 되어 있습니다.

그렇다면 빌더에서 쓰래드를 생성해서..

위에처럼 Com1Th->Terminate() 해주면 어떻게 되는건가요?

+ -

관련 글 리스트
25707 [질문] TThread 관련 질문입니다.. 강영준 658 2003/05/22
25708     Re:[질문] TThread 관련 질문입니다.. Julien 752 2003/05/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.