امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Doevent چکار می کنه ؟
نویسنده پیام
Blossom آفلاین
در حال پیشرفت
***

ارسال‌ها: 257
موضوع‌ها: 40
تاریخ عضویت: مرداد ۱۳۸۴

تشکرها : 9
( 21 تشکر در 14 ارسال )
ارسال: #1
Doevent چکار می کنه ؟
Doevent چکار می کنه ؟
۲۷-دى-۱۳۸۴, ۱۸:۰۲:۱۳
ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #2
 
دوست من سلام

Doevent در ويژوال بيسك وظيفه داره كه صف پيغام هاي يك پنجره رو خالي كنه كه برنامه شما قدرت پاسخ به رويداد هاي كاربر و ... رو داشته باشه ! :!:

بر فرض مثال يك برنامه اي داريم كه از يك حلقه استفاده ميكنه كه در اون حلقه يك پروسه گرافيكي در حاله انجامه ! قدرت زيادي از پردازنده و حافظه به اون پروسه اختصاص پيدا كرده و ميتونيم ببينيم كه سيستم عامل در طول انجام اون پروسه كند شده و تمام قدرت معطوف پروسه ما شده و به علتي كه سيستم عامل كاملا در حال پردازش امور پروسه ما با تقدم بيشتري هست فرصتي براي پردازش كليك هاي ماوس روي پنجره با تقدم كمتر وجود نداره و سيستم عامل همه اون پيغام ها رو در صف پيغام هاي پنجره منتظر نگه ميداره .
فرض كنيد كه ميخوايم يه كليد لغو عملياتي رو براي حلقه بزاريم اما چون رويداد هاي ماوس فرصتي براي پردازش پيدا نمي كنن ما قابليت لغو عمليات رو از دست ميديم يا اينكه عمل كليك كاربر تا لغو عمليات پروسه مدت زمان زيادي رو ميبره و ما نمي تونيم در زمان كوتاهي اون پروسه رو متوقف كنيم كه در بسياري از اوقات يك مشكل جدي تلقي ميشه !

حالا ما در انتهاي هر گردش حلقه يك دستور Doevent رو قرار ميديم . در اين حال در انتهاي هر حلقه پروسه صف پيغام ها خالي ميشن و پيغام هاي در حال انتظار نابود ميشن و فرصت براي ورود پيغام هاي بعدي ( مثل رويداد كليك بر روي دكمه لغو ) باز مي مونه ! در نتيجه برنامه ما مي تونه با كاربر و رويداد هاتي ماوس كاربر تا حد بسيار زيادي هماهنگ بشه و برنامه ما حالت هنگ به خودش نگيره !
نكته آخر اينكه چون VB از برنامه نويسي مدل Multithread پشتيباني نميكنه ما مجبوريم از اين طريق از بار اضافي بر سيستم عامل كم كنيم تا برنامه حالتي نرمال در زمان اجرا داشته باشه !

اميدوارم مفيد واقع بشه ! :wink:

گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
۲۷-دى-۱۳۸۴, ۱۸:۵۸:۵۸
ارسال‌ها
پاسخ
تشکر شده توسط : SayyedAli


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Wink res چیست چکار میکند و چگونه یک res بسازیم HoseinVig 13 20,460 ۰۶-تير-۱۳۹۵, ۱۷:۵۰:۲۹
آخرین ارسال: Ghoghnus
  برای ایجاد یک CommandButton روی یک برنامه دیگه خارج از فرمم چکار کنم red11011 8 6,632 ۱۹-خرداد-۱۳۸۸, ۱۷:۲۰:۱۳
آخرین ارسال: lord_viper
  میخواهم جدولهای دو تا بانک اکسس که دو دو تا بانک مجزا هست رو یکی کنم چکار کنم m_vb66 3 3,232 ۰۹-مهر-۱۳۸۷, ۱۰:۵۰:۲۳
آخرین ارسال: m_vb66
  با این پیام خطا چکار کنم unrecorgnized database format mah70 3 2,894 ۱۳-اسفند-۱۳۸۶, ۱۰:۱۷:۴۹
آخرین ارسال: m_vb6

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS