|
앞서 검색한 글에 임프님의 글을 읽으니, 한번 쓰레드를 terminate하고 delete하면 execute method가 종료되어 다시 생성하는 방법은 없다고 읽었습니다.
void __fastcall TMainFrame::StartClick(TObject *Sender)
{
Scan = new Scanning(false);
}
void __fastcall TMainFrame::AbortClick(TObject *Sender)
{
Scan->Terminate();
Scan->WaitFor();
Scan = NULL;
delete Scan;
}
지금 이런 형국으로 Start버튼으로는 쓰레드 생성을, Abort버튼으로는 소멸을 하고 있지요.
suspend나 resume 메소드는 일시정지기능으로 이미 사용하고 있구요,
반드시 쓰레드를 소멸하고 비트맵 픽셀수를 재조정하고(지금 쓰레드로 비트맵에 라인 긋고 있거든요, 라인이 맨 아래부터 차곡차곡 쌓이죠~) 다시 쓰레드를 실행하고 싶은데요(즉 새 비트맵위에 처음부터 다시 그리고 싶은데요), 임프님 말씀대로 Abort버튼 누르고 다시 Start버튼 누르면 에러가 나네요. 어플리케이션을 종료하고 다시 시작해서 하면 되고요 --;
goto문등 갖은 꽁수를 써도 잘 안됩니다.
쉽게 생각하면 완전히 메모리까지 해제했는데도 왜 다시 생성이 안되는지 의아합니다.
좋은 방법 없을까요 고수님들~
|