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
[75681] Thread 외부종료
gksqjs94 [] 2180 읽음    2019-11-05 19:17
안녕하세요.

쓰레드 클래스
__fastcall ThreadTest::ThreadTest(String praram)
    : TThread(false)
{
    FreeOnTerminate     = true;
}
밑에.. excute있고..

/////////////////////

메인 h 선언
ThreadTest*          m_thread;

////////////////////

메인 Cpp

m_thread = new ThreadTest(param); 
이렇게 쓰레드 객체 생성하고
쓰레드가 끝나면 저절로 해제가 되잖아요.
지금 제 상황은 쓰레드 함수에서 WriteFile 을 쓰게되면 코드진행이 더 이상되지않고 말그대로 멈춰있는데 이런상황에서 메인폼에서 쓰레드를 죽이고 싶은데 어떻게 해야할까요 .
클릭함수
for(int i  =0 ; i < 25; i++)
{
    Sleep(1000);
    Application->ProcessMessages();
    if(쓰레드가 멈추지않고 진행이 정상적으로 됐을떄)
   {
      return;
   }
}
if(스레드가 멈춰있을때)
{
    if(m_thread != NULL)
   {
      m_thread->Terminate();   
   }
}

이런식으로 해결을 했었는데 간헐적으로 cannot terminate an externally created thread 이 에러가 떨어지네요
구글링해봐도 잘 이해가 가지않아서 질문드립니다.

추신:  64bit 환경에서는 잘되는데 32비트에서만 그런거같네요 찾아보니까 해당 바이트수가 정해져있는데 넘어서서 그런걸까요 ?

+ -

관련 글 리스트
75681 Thread 외부종료 gksqjs94 2180 2019/11/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.