|
제가 구현하려는 것은 원격으로 에이전트를 실행 / 중지 시키는 것입니다.
실행/중지에 대한 값은 DB에 들어있습니다.
이에 2개의 Thread를 만들었습니다.
1Thread : 실행시 돌아가는 업무 (종료전까지 돌아갑니다.)
2Thread : DB를 체크하여 프로그램이 실행 되어야할지 멈춰야할지를 확인합니다.
이렇게 두개의 쓰레드를 만들었고요
MainForm에서 new로 정의를 한 후
프로그램이 종료되는 시점에서 2Thread를 Resume(); 시켜줬습니다.
여기서 2Thread는 DB를 지속적으로 연결해서 확인하다
try
{
while(!Terminated)
{
if(frmMain->funGetService())
{
frmMain->funEnableService(true);
}
::Sleep(1000);
}
}
catch ( ... ) {}
DB에 실행명령이 들어오면 frmMain->funEnableService(true); 이 함수를 타거던요.
이 함수안에 내용은 1Thread->Resume();한후 2Thread->Suspend();
시키는 것입니다.
디버그를 해보면 로직은 잘 타는데 Resume이 잘 안됩니다.
ㅠㅠ Thread를 두개이상 써본적이 없어서 어떤 식으로 해야할지..
결론은 1Thread가 실행상태면 2Thread는 휴식
1Thread가 휴식상태면 2Thread는 실행이 되어야하는 것입니다.
초보라 어렵네요 답변 부탁드리겠습니다.
|