|
Thread1 = new Thread1(ThreadSel); //외부에서 쓰레드 호출합니다.쓰레드 1을 호출합니다
////////////////////쓰레드 1
void __fastcall TBootThread::Execute()
{
while(!Terminated && ThreadFlag == 1 )
{
EnterCriticalSection(&CriticSec);
BulThread = new BulOnOff(true); -->쓰레드 2 호출
UpdateThread(); -->함수를 호출하여 함수를 동작합니다.
ThreadFlag = 0;
BulThread->Terminate(); -->쓰레드 2를 터미네이트합니다,
LeaveCriticalSection(&CriticSec);
Sleep(20);
}
}
/////////////////쓰레드 2
void __fastcall BulOnOff::Execute(void)
{
while(!Terminated && TurnOnOff == true)
{
EnterCriticalSection(&cs);
UpdateTurnOn(); ---->함수 동작시 여러개의 BMP 그림화일을 바꾸면서 표시합니다.
LeaveCriticalSection(&cs);
}
EndBulOnOff();
}
TImage * GImage[5];
GImage[0] = new TImage(GLamp0);
..
그림부분은 위와 같이 할당했습니다. GLamp0는 TImage입니다.
위와같이 쓰레드1이 동작하면서 2에서는 그림을 바꿔가면서 표시합니다.
그런데, 프로그램이 몇시간 정도 돌면 프로그램을 찾을수 없다라는 에러 메세지가 나옵니다.
가장 의심나는 부분이라 소스를 발췌해서 올립니다.
의심가는 부분이나 해결 방법에 대해서 좀 알려주세여..
몇주째 시원하게 풀리지 않는군여..
|