PDA

View Full Version : سوال: جلوگیری از چندین بار اجرا شدن یک تابع در background worker



dharmaa
سه شنبه 20 مرداد 1394, 12:36 عصر
سلام دوستان
یک تابع در متد DoWork نوشتم میخام فقط یک بار اجرا بشه اما چندین بار اجرا میشه. !!!!!!
نمیدونم مشکل از کجاست .شما میتونید کمکم کنید؟؟؟

bgk.DoWork += bgk_DoWork;
bgk.RunWorkerCompleted += bgk_RunWorkerCompleted;
bgk.RunWorkerAsync();



void bgk_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
{
myfunction();
}

سپاسگذارم.

MehdiElexal
سه شنبه 20 مرداد 1394, 12:39 عصر
از یک متغییر کمکی استفاده کنید
داخل تابع 1 کنید و قبل تابع 0 شرط اجرا هم 0 بذارید که داخل تابع رفت 1 بشه و دیگه اجرا نشه
البته راه های دیگم هست ولی این ساده ترین راهشه
موفق باشید

محمد رضا فاتحی
سه شنبه 20 مرداد 1394, 13:13 عصر
تابع myfunction چیه؟

dharmaa
سه شنبه 20 مرداد 1394, 13:42 عصر
از یک متغییر کمکی استفاده کنید
داخل تابع 1 کنید و قبل تابع 0 شرط اجرا هم 0 بذارید که داخل تابع رفت 1 بشه و دیگه اجرا نشه
البته راه های دیگم هست ولی این ساده ترین راهشه
موفق باشید

دوست گرامی ممنون از راهنمایی مفیدتون.
اما دلیل اینکه تابع چندین بار اجرا میشه چیه؟

dharmaa
سه شنبه 20 مرداد 1394, 13:45 عصر
تابع myfunction چیه؟
اگه منظورتون اینه که تابع کارش چیه.
کارش تولید یه گزارشه. اما هر چیزی که باشه بیشتر از یه بار اجرا میشد.

محمد رضا فاتحی
سه شنبه 20 مرداد 1394, 13:53 عصر
کد اجرای تابع در backgroundworker درسته و دلیلی بر اجرای چندبارش نیست مگه اینکه توی تابع myfunction به اتفاقی رخ بده....