ما هي الفوائد اللازمة لاستخدام doevents على إعادة رسم المستخدم في VBA؟

StackOverflow https://stackoverflow.com/questions/4299277

سؤال

ما هي الفوائد اللازمة لاستخدام doevents على إعادة رسم المستخدم في VBA؟ هل بسبب الأداء ، لتقليل إزعاج أشياء مثل وميض الشاشة ، أو عندما تحتاج إلى تحديث أكثر من مجرد النموذج؟

تبحث عن بعض التوضيح على الفرق من منظور VBA.

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

المحلول

بشكل عام ، يستخدم VB6 و VBA doevents لإخبار المعالج بمواصلة معالجة الرسائل في قائمة انتظار الرسائل. يتم استخدامه عند إجراء عملية معالجة مكثفة في المعالج وبالتالي لا تزال واجهة المستخدم للبرنامج تستجيب لجميع الأحداث الأخرى.

مثال: أنت تقوم بخوارزمية بحث مكثفة ، إذا لم تقم بإضافة doevents ، فقد يتدلى البرنامج حتى ينهي البحث. من ناحية أخرى ، إذا قمت بإضافة doevents (إلى حلقة البحث دعنا نقول) لا يتدلى البرنامج ولا يزال بإمكانه التعامل مع جميع أحداث البرنامج مثل (إلغاء) إلغاء البحث.

تحرير: أراه على أنها doevents أكثر شمولاً من إعادة الطلاء لأنها تتعامل مع جميع أنواع الأحداث لا تتعامل فقط مع وميض/تعليق واجهة المستخدم.

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