|
궁금맨 님이 쓰신 글 :
: 안녕하세요? 궁금한게 있어서 글을올립니다.
:
: 쓰레드안에 블러킹 함수가 포함되어있으면 FreeOnTerminate설정으로 쓰레드를 끝낼수 없는걸로 알고있습니다.
:
: 블러킹 함수가 포함된 쓰레드를 에러없이 스무스하게 종료하는 방법이 없을까요?
:
유앤아이 현지 아빠입니다.
블러킹 함수가 포함 되 있을때는 분명히 이벤트를 기다리는 블러킹일듯 싶은데요~
그 이벤트를 싱글로 기다리지 말고 ....
멀티로 이벤트를 기다립니다. 그리고 하나는 원하는 기능을 하는 이벤트 이구요~
또하나는 블럭킹을 빠저나가는 이벤트를 걸어줍니다.
그리고 FreeOnTerminate 을 하기전에 ... 이벤트를 발생시켜 이벤트를 기다리는 함수에서
빠저 나가게 하여~ 스레드를 종료시킵니다.
ThreadEvent = WaitForMultipleObjects(이벤트갯수, pDevice->EventArray, FALSE, INFINITE);
switch(ThreadEvent) {
case EXIT : 빠저나가기~
case DATA : 원하는기능~
}
이런식으로~~
음~~ 이해하실련지~~
그럼
|