|
간단하게 꾸며봤습니다.
초보빌더님이 하신내용이랑 별차이는 없을듯한데...
참고해보시기 바랍니다.
초보빌더 님이 쓰신 글 :
: 제가 구현하려는 것은 원격으로 에이전트를 실행 / 중지 시키는 것입니다.
: 실행/중지에 대한 값은 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는 실행이 되어야하는 것입니다.
: 초보라 어렵네요 답변 부탁드리겠습니다.
|