태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.



2009.08.22 02:06

[Win32/WinCE] DoEvent()로 메시지큐를 처리할때 실수하기 쉬운 오류!!




반복적인 하드코어의 작업을 처리하면서 가끔은 메시지큐를 돌려주어야 할 경우가 발생한다.

이럴때 사용하는것이 바로 doevent() 헌데 여기에 스스로 함정을 파 놓을 수 있다.

예를 들자면 onMouseDown과 onMouseUP이라는 이벤트 핸들러가 각각 두개씩 정의되어 만들어져 있다 치자.

이떄 두 핸들러에서 모두 하나의 메서드를 처리한다고 할때...

메서드 안에서 메지시큐를 처리해준다 치면....

원래의 실행 순서를 보자면

1.  (1) onMouseDown
2.  (2) onMouseDown
3.  (1) onMouseMove
4.  (2) onMouseMove

이렇게 가야 정상인데...

doEvent메서드가 있을경우 아래처럼 순서가 흐트러질 수 있다.

1.  (1) onMouseDown
2.  (1) onMouseMove
3.  (2) onMouseDown
4.  (2) onMouseMove

즉, 내가 정의했던 핸들러의 순서를 무시하고 다음 큐를 먼저 진행하는 수가 있다는 말!!!!!!

결론: 메시지큐를 받는 메서드에서는 메시지큐를 처리할 수 있는 doEvent 따위를 사용하지 말것!!


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 Comment 0


티스토리 툴바