CreateEvent로 전역 이벤트를 만들었으며 OpenEvent를 사용하는 다른 응용 프로그램에서이 이벤트를 처리합니다.핸들/이벤트 비동기 대기 또는 동일한 스레드 내에서 콜백
(pesudo 코드) my_call_back이 register_event_change_notification라는 동일한 스레드에서 실행됩니다
register_event_change_notification(my_call_back);
void my_call_back()
{
// do work
}
:
그런 다음 내가 좋아하는 일을하고 싶습니다. 그러나 내 문제는 내가 이것을 허용하는 API를 찾을 수 없다는 것입니다. 당신은 다음과 같은 옵션이 나타납니다 :
은의 WaitForSingleObject를 사용하는 스레드를 만든 다음 바로 my_call_back 호출하고 모든 주위에 중요한 부분을 넣어.
WaitForSingleObject를 사용하는 스레드를 만들고 메시지 루프로 주 스레드를 차단 한 다음 WaitForSingleObject가 메시지 루프와 동일한 스레드에서 실행되는 my_call_back을 가져올 때 이벤트를 게시하십시오. 이는 register_event_change_notification을 호출 한 스레드와 다를 수 있습니다.
이것은 여러 번 해결되었을 것입니다. 이벤트가 IMO에 신호를 받았을 때 알 수있는 스레딩 문제를 처리해야하는 과도한 부담입니다.
편집 :
내가 QueueUserApc를 사용하여 들어갑니다 결국-하지만 당신의 메시지를 넣어은 * 예 API의이 스레드를 Alertable State에 넣기 위해서 사용해야 함을 의미한다. 또 하나의 장애물은 APC의 모든 서비스를 받기 전에 미해결 된 APC를 추적하고 객체를 파괴하지 말아야한다는 것입니다. 그렇지 않으면 파괴/삭제 된 개체에 대기중인 APC가 표시됩니다.