2008-09-23 5 views
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?Quelle est la profondeur de la file d'attente des messages Win32?

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?

Répondre

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? –

+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. – Branan

+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 ... –

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. –

Questions connexes