1

これがこれを行う正しい方法であるかどうかはよくわかりません(私は愛好家です)。GetMessage() をループし、メッセージに応じて何かを行うワーカー スレッドにメッセージを投稿したいと思います。そのワーカースレッドのハンドルで posthreadmessage() を使用する必要があることを理解しています。

これが私の質問です:

使ってもいいですか

PostThreadMessage(idWorkerThread, WM_COMMAND, (WPARAM)0, (LPARAM)0))

複数の異なるスレッドから?これにより、異なるスレッドから同時にワーカー スレッドのメッセージ キューにメッセージが書き込まれる可能性があることを理解しています。それは問題ですか、それとも大丈夫ですか?基本的に、N->1 スレッド間通信が必要です。

4

1 に答える 1

1

PostThreadMessage はスレッド セーフなので問題ありません。それを行う良い方法です。もう 1 つのオプションは、スレッドにイベントまたは条件変数を待機させ、適切な同期を使用してイベントをキューにプッシュする機能を持たせることです。

于 2012-04-17T08:20:12.587 に答える