|
창에 닫기 버튼을 누르면 쓰레드를 종료 하지 못하고 에러를 내고 멈춰 버리네요.
종료 버튼을 누르면 아래와 같이 작동합니다.
ThreadEnd(); //쓰레드 종료 함수
TIdTCPClient1->Disconnect(); // 클라이언트 접속 종료
Close(); //창 닫기
void TForm1::ThreadEnd()
{
ThreadWork = false; //true이던 스레드를 false로 바꿔준다.
}
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
::WaitForSingleObject(ThreadHandle, INFINITE ); //쓰레드 종료 대기
}
이와 같은데 왜 스레드 종료를 못할까요?
|