|
저는 쓰레드를 종료하는데 문제가 많아서 쓰레드 종료부분을 다음과 같이 처리하였습니다.
물론 쓰레드가 종료되고 Main프로그램이 잘 돌아가더라구요.
문제는 쓰레드를 실행 안 시키고 Main프로그램을 종료하면 아무 문제 없는데
쓰레드를 실행한 후 Main프로그램을 종료하면 다음과 같은 에러 메세지가 뜹니다.
Project project1.exe raised exception class EWin32Error with message 'Win32Error. Code: 1400. 잘못된 창 핸들입니다'. Process stopped. Use Step or Run to continue.
어떻게 된건지 모르겠습니다. 고수님들 좀 부탁드립니다.
//---------------------------------------------------------------------------
쓰레드 생성은 걍 new 연산자 사용해서 했습니다.
//---------------------------------------------------------------------------
쓰레드 종료 부분
ReviewThread->Terminate();
delete ReviewThread;
ReviewThread = NULL;
//---------------------------------------------------------------------------
// 쓰레드 부분입니다.
//---------------------------------------------------------------------------
__fastcall TReviewThread::TReviewThread() : TThread(true)
{
FreeOnTerminate = true;
Resume();
}
//---------------------------------------------------------------------------
void __fastcall TReviewThread::Execute()
{
for ( ; ; )
{
for ( ; ; )
{
for ( ; ; )
{
if ( )
{
while ( )
{
if (Terminated) <-----------
break;
}
if (Terminated) <------------
break;
}
}
if (Terminated) <------------
break;
}
if (Terminated) <------------
break;
}
}
//---------------------------------------------------------------------------
|