|
smleelms님 예제 소스 잘 보았습니다. ^^
이번 질문은.. 쓰레드가 자기 자신을 멈추고 다른 쓰레드를 실행 시킬 수 있는지입니다.
smleelms님의 예제는 메인폼에서 버튼의 입력에 따라 쓰레드가 왔다갔다하잖아요.
제가 하고 싶은건..
Th1이 돌기 시작하면 주기적으로 DB를 살펴가면서 업무를 처리하다가 DB에 값이 변하면
Th1을 Suspend시키고 Th2를 Resume 시키고요.
Th2가 Resume 되면 Th1과 마찬가지로 DB를 살펴가면서 업무를 처리하다가 DB에 값이 변하면
Th2를 Suspend시키고 Th2를 Resume시킵니다.
MainForm Active시
if(DBLoad())
{
frmMain->fEnableService(true);
}
{
frmMain->fEnableService(false);
}
으로 쓰레드가 돌기 시작하고
그후 쓰레드에서 쓰레드를 제어? 해야하는데..
그래서 Main폼에 fEnableService(bool) 함수를 만들어서
각 쓰레드에
if(DBLoad())
{
frmMain->fEnableService(true);
}
{
frmMain->fEnableService(false);
}
를 넣었습니다.
fEnableService는
true이면 Th1=Suspend; Th2=Resume;
시키고
false이면 Th1=Resume; Th2=Suspend; 시키는 함수입니다.
프로그램을 실행시키면... (예제로 만든건 아니고요 제가 작성하던 프로그램에..)
프로그램이 실행되다가 DB값에 변경이 일어나면.
쓰레드 억세스가 오류가 났다고 합니다.
이런 저런 방법으로 코딩해보는데.. 잘 안되네요.
>,.< 답변 부탁드릴께요 ..
|