Quelle est la profondeur de la file d'attente des messages Win32?


13

Combien de messages la file d'attente d'une fenêtre standard contient-elle? Que se passe-t-il lorsque la file d'attente déborde?

La documentation pour GetMessage et parents ne dit rien à ce sujet, et PeekMessage vous donne seulement un oui/non pour certaines classes de messages, pas un nombre de messages.

This page indique que les files d'attente sont implémentées en utilisant des fichiers mappés en mémoire, et qu'il n'y a pas de limite de nombre de messages, mais cette page concerne WinCE. Est-ce que cela s'applique également au bureau Win32?

13

10000 par défaut, mais il peut être ajusté via le registre.

Si la file d'attente déborde, PostMessage échoue.

Documentation ici:

PostMessage function on MSDN

  0

Cela couvre 2000/XP - une idée à propos de Vista? 23 sept.. 082008-09-23 19:52:35

  0

Je viens de regarder la clé de registre répertoriée dans cet article sur une machine Vista Business SP1, et elle est définie sur 10000. Je ne sais pas si c'est le seul facteur déterminant la longueur de la file d'attente sur Vista, cependant. 23 sept.. 082008-09-23 19:55:52

  0

Je ne sais pas * mais il est peu probable qu'il soit différent. Vista n'est pas si révolutionnaire, je ne pense pas ... 23 sept.. 082008-09-23 19:59:05

+1

Encore une chose cependant - si vous envisagez d'utiliser la file d'attente des messages comme, euh, une file d'attente qui est alimentée par un autre thread, je pense que vous serez déçu par Les resultats. Vous allez vous retrouver avec une interface graphique qui ne répond pas. Notre compagnie a beaucoup d'expérience avec exactement cette technique conçue échouée. 23 sept.. 082008-09-23 20:00:44

  0

Bonjour Corey, merci pour la réponse. La limite mentionnée et la clé de registre (qui peut être ajustée) fonctionnent également pour Windows 8. 22 août. 132013-08-22 12:06:15


3

Comme il est indiqué dans l'article MSDN, si vous avez besoin de vous soucier de la taille de la file d'attente de messages, vous pourriez être mieux redessiner votre application.

  0

Dans ce cas, nous sommes de l'autre côté de la file d'attente; notre pilote de périphérique affiche les messages, et une application Flash jouet s'enlise après quelques minutes. 24 sept.. 082008-09-24 13:17:11