Win32メッセージキューの深さはどれくらいですか?


13

標準ウィンドウのキューには何メッセージが保持されますか?キューがオーバーフローするとどうなりますか?

GetMessageとその親族のドキュメントではこれについて何も言及していません。PeekMessageは、メッセージ数ではなく、特定のクラスのメッセージに対してのみyes/noを指定します。

This pageによると、キューはメモリマップファイルを使用して実装され、メッセージ数の制限はありませんが、そのページはWinCEに関するものです。これはデスクトップのWin32でも同様ですか?デフォルトでは

13

10000ですが、レジストリで調整することができます。

キューがオーバーフローした場合、PostMessageは失敗します。ここ

ドキュメント:

PostMessage function on MSDN

  0

それは2000/XPをカバーします - Vistaについての考え方は? 23 9月. 082008-09-23 19:52:35

  0

私は、Vista Business SP1マシンのこの記事に記載されているレジストリキーを調べたところ、10000に設定されています。Vistaのキュー長を決定する唯一の要因かどうかはわかりません。 23 9月. 082008-09-23 19:55:52

  0

私は*知っていませんが、違いはないでしょう。 Vistaはそれほど革命的ではないと私は思っていません。 23 9月. 082008-09-23 19:59:05

+1

メッセージキューを別のスレッドから供給されているキューとして使用することを考えているなら、結果。あなたは無意味なGUIで終わるでしょう。私たちの会社は、この失敗した設計テクニックで多くの経験を持っています。 23 9月. 082008-09-23 20:00:44

  0

こんにちはコーリー、答えてくれてありがとう。上記の制限とレジストリキー(調整可能)は、Windows 8でも機能します。 22 8月. 132013-08-22 12:06:15


3

MSDNの記事で述べたように、あなたがメッセージキューのサイズを心配する必要がある場合は、アプリケーションを再設計したほうが良いかもしれません。

  0

この場合、キューの反対側にあります。私たちのデバイスドライバがメッセージを投稿していて、おもちゃのFlashアプリケーションが数分後に動き出していませんでした。 24 9月. 082008-09-24 13:17:11