내 프로그램의 여러 스레드가 통신하는 데 도움이되는 메시지 큐 (Windows에서 제공)를 사용하고 있습니다. 그러나 프로그램에서 모든 스레드에 메시지를 한 번에 보내야합니다. 이 작업을 수행 할 수있는 기능이 있습니까?모든 스레드에 메시지를 보낼 수 있습니까?
0
A
답변
1
일반 스레드 메시지 (창없이)는 Windows에서 신뢰할 수 없습니다. 트레이스없이 삼켜 버리고 상황을 처리 할 스레드가없는 상황이 있습니다. 따라서 윈도우 타겟 메시지는 항상 해당 윈도우의 윈도우 프로 시저에 의해 처리되기 때문에 메시지 타겟을위한 최상위 레벨 윈도우를 갖기를 원합니다. 해당 스레드에 대한 가시 창이 필요하지 않은 경우 메시지 전용 창 (부모가 HWND_MESSAGE
)으로 만들 수 있습니다.
각 스레드에 대한 창을 얻었 으면 EnumWindows
또는 EnumChildWindows
으로 창을 열거하고 원하는 메시지를 보낼 수 있습니다. 또는 스레드 메시지 창 목록을 유지하고 각각에 메시지를 보낼 수 있습니다. 프로세스의 모든 스레드에 메시지를 보내는 간단한 방법은 없습니다.
관련 문제
- 1. 어떻게 메시지를 보낼 수 있습니까?
- 2. Github : 프로젝트를 시청하는 모든 사람들에게 메시지를 보낼 수 있습니까?
- 3. 작업 (OmniThreadLibrary)간에 메시지를 보낼 수 있습니까?
- 4. webservice가 서버에서 클라이언트로 메시지를 보낼 수 있습니까?
- 5. iPhone/iPad에서 팩스로 메시지를 보낼 수 있습니까?
- 6. 구독자는 NServiceBus에서도 메시지를 게시하거나 보낼 수 있습니까?
- 7. 어떻게 프로그래밍 방식으로 메시지를 보낼 수 있습니까?
- 8. WCF를 통해 큰 메시지를 보낼 수 없습니다.
- 9. GTalk 인 텐트를 통해 메시지를 보낼 수 있습니까?
- 10. SQL 명령을 실행하고 TransactionScope에서 MSMQ 메시지를 보낼 수 있습니까?
- 11. 클라이언트에서 서버로 메시지를 보낼 수 없습니다.
- 12. 긴 메시지를 보낼 수있는 Twitter API가 있습니까?
- 13. OSX에서 동일한 컴퓨터의 다른 사용자에게 으르렁 메시지를 보낼 수 있습니까?
- 14. 안드로이드 서비스를 작성하여 문자 메시지를 보낼 수 있습니까?
- 15. 어떻게 반복적으로 파이썬에서 서버 소켓을 통해 메시지를 보낼 수 있습니까?
- 16. 경고 메시지없이 APNS 메시지를 보낼 수 있습니까? (데이터 전용)
- 17. 개인 웹 사이트에서 Facebook 메시지를 보낼 수 있습니까?
- 18. 한 얼굴 컨텍스트에서 다른 JSF 컨텍스트로 메시지를 보낼 수 있습니까?
- 19. 내 컴퓨터에서 휴대폰으로 문자 메시지를 보낼 수 있습니까?
- 20. iPhone SDK를 사용하여 사진 메시지를 보낼 수 있습니까?
- 21. CodeIgniter에서 PHP 오류 메시지를 나에게 이메일로 보낼 수 있습니까?
- 22. 응용 프로그램 서버 외부에서 JMS 대기열로 메시지를 보낼 수 있습니까?
- 23. WM_QUERYENDSESSION 메시지를 다른 프로세스의 창에 보낼 수 있습니까?
- 24. Facebook 응용 프로그램이 어떻게 모든 사용자의 친구에게 메시지를 보낼 수 있습니까?
- 25. QApplication의 모든 스레드에 대한 액세스
- 26. ESB가 구독자에게 HTTP POST를 보낼 수 있습니까?
- 27. Perl 패키지의 모든 서브를 어떻게 내 보낼 수 있습니까?
- 28. 전자 메일을 어떻게 trac에 보낼 수 있습니까?
- 29. 안드로이드에서 대량 데이터 메시지를 보낼 때의 문제
- 30. jQuery만으로 이메일을 보낼 수 있습니까?
왜? 모두 같은 시간에 처리를 시작할 수는 없으므로 PostThreadMessage를 N 번 호출하면 어떤 문제가 발생합니까? – Tergiver
가끔씩 가변 개수의 쓰레드를 가지기 때문에 어떤 쓰레드를 보낼지 알아내는 번거 로움이 있습니다. – Mark
HWND_BROADCAST에 게시를 시도 했습니까? 쓰레드가 어떤 조건을 만족해야하는지 정확히 모르겠습니다. 각 스레드마다 최상위 창이 필요할 수도 있습니다. 확실하지 않습니다. HWND_BROADCAST를 사용하는 경우 RegisterWindowMessage를 사용해야합니다. – Tergiver