3

最近、Windowsの異なるスレッド間でメッセージ通信を使用するジョブ(C / C ++)を取得しました。Googleで検索したところ、Windowsにもメッセージキューがありましたが、ウィンドウとの関連性が高く、実際、アプリケーションにウィンドウは必要ありません。

Linuxのメッセージキューと同様に、各スレッドはメッセージキューを作成し、メッセージキューIDを取得し、そのIDにメッセージを送信し、そのIDから受信するなど、必要なメッセージキューです。

Windowsにそのように機能する同様のメカニズムはありますか?

4

1 に答える 1

7

Windowsでメッセージを使用するためのウィンドウは必要ありません。PeekMessageまたはGetMessageを呼び出すスレッドはメッセージキューを取得し、PostThreadMessageを使用してメッセージを投稿できます。

メッセージは同じプロセスで正常に機能するはずですが、これがクロスプロセスであり、size_t * 2を超えるメッセージを送信する必要がある場合は、他のIPCメカニズムを調べるか、共有メモリとある種のロックを使用して独自のメカニズムを構築する必要があります。WindowsにはMSMQもあります。

正確なPOSIXインターフェースが必要かどうかを指定していません。いずれにしても、ウィキペディアにはオープンソースの代替案のリストがあります...

于 2012-06-12T02:12:07.057 に答える