PDA

View Full Version : کار دستور Application.DoEvents() چیه؟



sajad_3dmax
شنبه 02 مهر 1390, 03:43 صبح
با سلام دوستان عزیز
کار این دستور چیه؟
application.DoEvents()

Felony
شنبه 02 مهر 1390, 07:46 صبح
پیغام هایی که در Message Queue ترد اصلی برنامه ( Main Thread ) قرار دارند رو پردازش میکنه و این کار رو تا خالی شدن صف پیغام ها ادامه میده .

مرتضی تقدمی
شنبه 02 مهر 1390, 11:06 صبح
سلام
تو این تاپیک یک نگاهی به این شده :
http://barnamenevis.org/showthread.php?251683-%D8%AE%D8%B7%D8%A7%D9%8A-System.stackowerflowexception&highlight=crying+sphere
موفق باشید

sajad_3dmax
شنبه 02 مهر 1390, 12:57 عصر
تشکر دوست عزیز.اما من خوب متوجه نشدم.
من این دستور رو در این کدها دیدم که برای کم کردن opacity فرم حین بسته شدن نوشته شده اند.کاربرد application.DoEvents اینجا چیه؟
در ضمن تو لینکی که قرارداده بودین گفته شده بود که استفاده از این دستور خطرناکه.چه راه دیگه ای وجود داره؟
با تشکر

مرتضی تقدمی
شنبه 02 مهر 1390, 13:20 عصر
سلام
راهش اینه که شما از اون استفاده نکنید! توی همون تاپیک گفته شده که بجاش از Thread ها استفاده بشه.
می تونید opacity فرم رو توی یک تایمر اضافه یا کم کنید و از application.DoEvents هم استفاده نکنید.
موفق باشید

sajad_3dmax
شنبه 02 مهر 1390, 13:43 عصر
دوست عزیزم آقای تقدمی
سوال اصلی من اینه که این دستور که پیام های موجود در صف پیام ها رو پردازش میکنه تا انتها،کاربردش در اینجا چیه؟چرا تو کد کم کردن opacity فرم ازش استفاده شده؟

seven7777777
شنبه 02 مهر 1390, 13:48 عصر
به نظر میرسه برای اینه که رویداد محو شدن فرم توی صف پشت یک سری رویداد دیگه گیر نکنه که محو شدن مثلا کند بشه یا در اون خللی وارد بشه . در حقیقت می خواد هر مرحله از محو شدن بلافاصله پشت سر مرحله قبل انجام بشه .
البته اینطور به نظر می رسه .
موفق باشید

sajad_3dmax
شنبه 02 مهر 1390, 15:27 عصر
اگه بازهم جواب کاملتری داشتید لطفا بفرمایید
با تشکرفراوان