|
님 리프레쉬 쓰레드를 죽일 필요가 있을까요...
Priority= tpIdle;로 설정하고...
외부에 안전한 extern 플래그 변수 하나 만들어서 플래그가 셋트 되면
보내는 명령을 스킵하고, 약간의 Sleep()을 주어서 쓰레드가 너무 빠르게 돌아서 프로세스 점유율을 올리는 것을 방지 하면,, 쓰레드 죽이지 않고,, 원할한 작업을 할수 있을것 같네요..
{
while(!Terminated) {
if(!bRefreshSuspended) {
님의 코드...
제가 좀 전에 보내드린 코드는 뮤텍스를 사용하므로 싱크로 나이즈 사용하면 안됩니다.
싱크로 나이즈 사용하면 WaitFor..대기 없이 바로 나갑니다..
이유는 스스로 판단해 보세요...
}
Sleep(1);
Application->ProcessMessages();
}
SetEvent(hEventTerminated);
}
main.cpp
canclose()
{
pThread->Terminate();
while(WaitForSingleObject(hEventTerminated, 3000)!=WAIT_OBJECT_0 ) {
......
}
}
|