PDA

View Full Version : اجرا شدن یک دستور بعد از اتمام اجرا تابع



kazemhayati
دوشنبه 13 فروردین 1397, 09:12 صبح
باسلام
دوستان من یه تابع دارم که در چند جا ازش استفاده می کنم ‌
در یکی از این جاها بعد از تابع دو سه متغیر مقدار دهی میشن اما وقتی که تابع صدا زده میشه همزمان اینکه تابع در حال اجرا هست اون کدهای بعد تابع هم اجرا میشه.
حالا سوال من اینه چطور میشه کاری کرد که تا زمان اتمام تابع هیچ کدی اجرا نشه

danialafshari
دوشنبه 13 فروردین 1397, 09:42 صبح
با سلام
دقیق متوجه نشدم بهتره کدتون رو قرار بدید
بعد از فراحوانی تابع کد Application.DoEvents(); رو اجرا کنید ببینید مشکلتون حل میشه؟

Application.DoEvents();

موفق باشید

kazemhayati
دوشنبه 13 فروردین 1397, 11:29 صبح
به طور مثال


Save();
Person=new localperson();

حالا وقتی تابع save اجرا میشه هنوز تموم نشده کد دوم هم اجرا میشه و اشکال تو روند اجرای تابع save ایجاد میشه

danialafshari
دوشنبه 13 فروردین 1397, 12:46 عصر
به طور مثال


Save();
Person=new localperson();

حالا وقتی تابع save اجرا میشه هنوز تموم نشده کد دوم هم اجرا میشه و اشکال تو روند اجرای تابع save ایجاد میشه
با سلام
یعنی DoEvents به کارتون نیومد؟

Save();
Application.DoEvents();
Person=new localperson();

دقیقاً معلوم نیست کدهاتون چیه با همین دو خط نمیشه توضیح درستی داد
اگر با کد بالا مشکلتون حل نشد بعد از DoEvents از Sleep استفاده کنید

System.Threading.Thread.Sleep(500);

میتونید از Background Worker یا Thread هم استفاده کنید
روی کدتون Breakpoint قرار بدید و روند اجرای کدهاتون رو بررسی کنید
موفق باشید