PDA

View Full Version : سوال: جلوگیری از not respond شدن برنامه در حلقه های طولانی



mahziar
سه شنبه 28 اردیبهشت 1389, 16:40 عصر
باسلام خدمت دوستان عزیز

من یه حلقه دارم که این حلقه اجراش شاید یکی ، دوساعتی طول بکشه ، چکار کنم برنامه not respond نشه ؟
اگه میشه نحوه کار System.Threading.Timer با مثال توضیح بدین .ممنون:عصبانی++:

h_arman
سه شنبه 28 اردیبهشت 1389, 17:09 عصر
باسلام خدمت دوستان عزیز

من یه حلقه دارم که این حلقه اجراش شاید یکی ، دوساعتی طول بکشه ، چکار کنم برنامه not respond نشه ؟
اگه میشه نحوه کار System.Threading.Timer با مثال توضیح بدین .ممنون:عصبانی++:

lمیتونی از Application.DoEvents استفاده کنی

naeeme
سه شنبه 28 اردیبهشت 1389, 21:47 عصر
Application.DoEvents سرعت اجرای برنامه رو به شدت پایین میاره.
بهتر است شما از thread یا backgroundworking استفاده کنید. نحوه کار این روشها و همچین سوال شما قبلا بارها در سایت مطرح شده.
جستجو کنید لطفا.

cardano7
سه شنبه 28 اردیبهشت 1389, 22:15 عصر
Application.DoEvents سرعت اجرای برنامه رو به شدت پایین میاره.
بهتر است شما از thread یا backgroundworking استفاده کنید. نحوه کار این روشها و همچین سوال شما قبلا بارها در سایت مطرح شده.
جستجو کنید لطفا.

همون Application.DoEvents خوبه. به شرط اینکه به فواصل لازم صدا زده بشه. مثلا هر 1000 دور حلقه یک بار(بستگی به نوع حلقه داره).
معلومه اگه در هر ثانیه 1000 بار اجرا بشه خودش عامل ترمزی میشه.
من تجربه کردم گه حتی بخش Catch از ساختار Try-Catch هم اگه در یک حلقه به دفعات زیاد صدا زده بشه سرعت میاد پایین!
تو حلقه باید احتیاط کرد.