سؤال

لدينا تطبيق يستخدم قائمة انتظار رسالة النافذة لتمرير البيانات من مأخذ إلى المستهلك HWNDS (بمعدل ~ 2100 هرتز). عمل هذا التطبيق ل 2 سنوات. بدأ طلبنا مؤخرا في عرض مشاكل حيث لا يتم تشغيل / تنفذ WM_TIMER / من قبل تطبيقنا. أعتقد أن هذا يرجع إلى ضخ البيانات في قائمة انتظار الرسائل.

سؤالي هو أن هناك طريقة لتحديد عدد الرسائل المعلقة في قائمة انتظار الرسائل للحصول على موضوع معين / HWND؟

هل كانت مفيدة؟

المحلول

ليس هناك طريقة جيدة للقيام بذلك. شيء واحد يمكنك القيام به هو إفراغ بقوة الرسالة في موقع ووضعها في قائمة الانتظار الخاصة بك. ولكن هذا لن يحل مشكلتك.

أنا أكره إخبارك بذلك، ولكن يجب أن تجد حقا طريقة لمعالجة بيانات المقبس الخاصة بك. أعتقد أنك ستجد بعض المقاييس الآلية الأخرى بشكل أفضل، وأداء أفضل، وأسهل تصحيح الأخطاء من استخدام قائمة انتظار رسائل Windows لهذا الغرض.

foredecker.

نصائح أخرى

يتم الرد على ذلك في تفاصيل رائعة حقا من قبل ريموند تشن في منصبه "ولكن بعد ذلك، نفد مشاكل عندما بدأنا نشر 10000 رسالة في الثانية".

طلب فريق البحث أن يجتمع مع فريق واجهة المستخدم للمساعدة في العمل على مشاكلهم قيد التحميل. أوضحوا تصميمهم وأوضحوا أنه يعمل بشكل جيد في معدلات البيانات المنخفضة "ولكن بعد ذلك، نفد مشاكل عندما بدأنا نشر 10000 رسالة في الثانية".

عند هذه النقطة، جلس رؤساء جميع واجهة المستخدم للتو هناك وضرب لبضع ثوان.

"هذا يشبه قول تويوتا كامري الخاص بك لديه مشاكل الاستقرار بمجرد أن تحصل على أكثر من 500 ميل في الساعة."

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top