2009-06-02 5 views
2

Wir haben eine Anwendung, die die Nachrichtenwarteschlange des Fensters verwendet, um Daten von einem Socket an Consumer-HWNDs (mit einer Rate von ~ 2100 Hz) zu übergeben. Diese Anwendung hat seit> 2 Jahren gearbeitet. In letzter Zeit hat unsere Anwendung Probleme gezeigt, wo WM_TIMER nicht von unserer Anwendung gefeuert/ausgeführt wird. Ich denke, das liegt daran, dass die Daten in die Nachrichtenwarteschlange gepumpt werden.Ermitteln des Fensters Message Queue Depth

Meine Frage gibt es eine Möglichkeit zu bestimmen, wie viele ausstehende Nachrichten in der Nachrichtenwarteschlange für einen bestimmten Thread/HWND sind?

Antwort

0

Es gibt keinen guten Weg, dies zu tun. Eine Sache, die Sie tun können, ist, die Nachricht que aggressiv zu leeren und sie in Ihre eigene Warteschlange zu stellen. Aber das wird dein Problem nicht lösen.

Ich hasse es, Ihnen das zu sagen, aber Sie sollten wirklich einen Weg finden, Ihre Socket-Daten zu verarbeiten. Ich denke, dass Sie einige andere Mechanismuswaagen besser finden, bessere Ergebnisse erzielen und einfacher zu debuggen sind, als dafür die Windows-Nachrichtenwarteschlange zu verwenden.

Foredecker

+0

Danke, das war, wovor ich Angst hatte. Ich wollte nur sehen, wie tief die Nachrichtenwarteschlange wurde, um zu überprüfen, ob mein Problem in diesem Codeabschnitt lag, bevor ich diesen Datenfluss neu gestaltete. – tallganglyguy

6

Das in wirklich sehr ausführlich von Raymond Chen in seinem Beitrag "but then we ran into problems when we started posting 10,000 messages per second" beantwortet wird.

Das Forschungsteam gebeten, mit dem Benutzeroberfläche Team zu treffen Arbeit aus ihren Problemen unter Last zu helfen. Sie skizzierte ihr Design und erklärte , dass es bei niedrigen Datenraten, gut funktionierte "aber dann rannten wir auf Probleme, als wir begannen, 10.000 Nachrichten pro Sekunde zu veröffentlichen."

An diesem Punkt saßen die Köpfe aller Benutzerschnittstelle Leute nur dort und bloggled für ein paar Sekunden.

"Das ist, als würde man sagen, dass Ihr Toyota Camry Stabilitätsprobleme hat, sobald Sie über 500 Meilen pro Stunde bekommen."

Verwandte Themen