|
일반적으로 윈도우시스템에서는
이벤트가 발생하여 메인윈도우로 메세지를 보내면 해당되는 callback함수가 수행이 되는데요,
이벤트 아이디가 'WM_EVENT_T'라고 가정하고, callbakc함수에서는
메세지안에 있는 Payload값에 따라서 Switch/Case문으로 처리를 합니다.
2가지 질문이 있습니다.
1. 'WM_EVNET_T'메세지를 여러 곳에서 SendMessage()함수를 통해서 발생을 해도 되는 건가요?
- 메인윈도우에 전송이 될 터인데, 여기에는 큐형태에 저장이 되는거지요.(?)
- 그렇다면, 들어온 순서대로 순차적으로 큐에 저장이 되는건가요.
2. Call back함수가 call이 될 때, 첫번째 call이 되어 수행 중일 때, 다음 메세지가 발생한다면,
이때 수행절차가 어떻게 되나요?
- 처음 메세지를 callback함수가 수행완료된 후에 두번째 메세지에 의해서 수행이 되는 건가요?
(callback함수가 수행후 종료될때까지 blocking이 된다.)
아니면, 새로운 메세지가 올때마다 블락킹이 없이 callback함수가 동시에(약간의 지연 수행)수행이 되는 건가요?
*정리하자면, 어떤 메세지를 여러곳에서 발생시키고, 이 메세지를 하나의 Callback함수에서 순차적으로
처리할 수 있느냐 ? 만약에, blocking이 안된다면 callback함수 안에서 blocking을 프로그램적으로
처리할 방법이 뭐가 있을까요? While문, Flag 등등.
|