|
void __fastcall TBootThread::Execute()
{
char imagename[100];
/*
try{
while(!Terminated && ThreadFlag == 1 )
{
FormMain->CMButtonEnDisable(1);
EnterCriticalSection(&CriticSec);
BulThread = new BulOnOff(true);
UpdateThread();
ThreadFlag = 0;
LeaveCriticalSection(&CriticSec);
}
}
__finally
{
BulThread->Terminate(); --> 다른 쓰레드 간제 종료.
FormMain->CMButtonEnDisable(0);
//Sleep(20);
a = ::GetTickCount();
do {
b = ::GetTickCount() - a;
}while(b <= 20);
}*/
while(!Terminated && ThreadFlag == 1 )
{
FormMain->CMButtonEnDisable(1);
EnterCriticalSection(&CriticSec);
BulThread = new BulOnOff(true);
UpdateThread();
ThreadFlag = 0;
BulThread->Terminate(); --> 다른 쓰레드 간제 종료.
LeaveCriticalSection(&CriticSec);
FormMain->CMButtonEnDisable(0);
//Sleep(20);
a = ::GetTickCount();
do {
b = ::GetTickCount() - a;
}while(b <= 20);
}
위에서 주석 처리한 부분과 그 아래부분은 같은 동작을 하는부분입니다.
그런데. 추석처리한 부분을 돌리면 프로그램이 상당히 늦어집니다.
반대로 아래부분을 돌리면 무척 빠릅니다.
초보인 지라 이유를 잘 모르겠네여..
다 똑같은 부분같은데...위부분은 얘기치 못한 에러일경우를 대비해서 처리한 거 뿐인데..
그리고 Sleep(20)과 GetTickCount()와의 차이도 많이 나네여..
혹시 아시는분 있으시면 이유 좀 알려 주세여..
|