سؤال

إذا يتم نشرها أحداث متعددة باستخدام wxPostEvent / wxCallAfter من نفس موضوع على سبيل المثال في نقرة زر هم من المفترض أن تتم معالجتها في نفس الترتيب؟

في المثال أدناه يستخدم wx.Callafter للنشر الأحداث والتي في النهاية سوف استدعاء وظائف الاستدعاء، فإنها يتم استدعاؤها في نفس النظام، والتي تم تمريرها إلى wx.CallAfter

def onbutton(self, event):
    wx.CallAfter(func1)
    # some more code
    wx.CallAfter(func2)
هل كانت مفيدة؟

المحلول

والمشاركات CallAfter الأحداث إلى قائمة انتظار الحدث وهذه يجب أن تتم معالجتها في النظام. ومع ذلك، يتم معالجتها على الأحداث الخمول، وليس على أساس إنجاز وظيفة، وبالتالي فإن func2 إلى أن تتم معالجتها قبل يتم func1 اعتمادا على توقيت الأحداث الخمول (على سبيل المثال wx.Yield، الخ) وهناك نقاش حول مشكلة مع هذا هنا ، ويبدو أنه يمكن أن يكون نوعا من صعبة.

نصائح أخرى

وأعتقد أنه يجب أن تكون مضمونة. لدي بعض التعليمات البرمجية التي الاستيلاء على البيانات من المنفذ التسلسلي في موضوع ويطلق من الأحداث لWX في التعامل معها. حتى عند تلقي البيانات في 115kbps - حيث ستطلق بلا شك من العديد من الأحداث قبل أن يتم معالجتها - تظهر البيانات يصل حتى عندما WX يدعو بلدي معالج للطباعة / تسجيل الخروج البيانات

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