سلام
من میخوام وقتی کاربر دکمه close فرم رو میزنه عملیات پس زمینه فرم کاملا متوقف بشه. از دستور dispose توی دکمه نمیخوام استفاده کنم ممکنه بگین توی چه رویدادی از فرم این کاررو بکنم آیا رویداد leave مربوط به دکمه خروج از فرم محسوب میشه ؟
سلام
من میخوام وقتی کاربر دکمه close فرم رو میزنه عملیات پس زمینه فرم کاملا متوقف بشه. از دستور dispose توی دکمه نمیخوام استفاده کنم ممکنه بگین توی چه رویدادی از فرم این کاررو بکنم آیا رویداد leave مربوط به دکمه خروج از فرم محسوب میشه ؟
سلام از کد زیر استفاده کن تمامی سرویس های نرم افزار رو متوقف میکنه...
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
Application.ExitThread();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
Application.ExitThread();
}
ممنونم از جوابتون ولی این کد برنامه رو می بنده ولی عملیات متوقف نمیشه و برنامه همچنان بعد از بسته شدن فرم قبل از کد invoke ارور میده و گیر میکنه من میخوام کلا همه چی متوقف بشه در ضمن این کد فرم اصلی رو هم می بنده در صورتی که من فرم فرزند رو میخوام ببندم
آخرین ویرایش به وسیله sajadzare : پنج شنبه 24 مرداد 1392 در 22:27 عصر
عملیات پس زمینه منظورتون چیه؟ از BackgroundWorker استفاده کردید؟
داخل رویداد کلیک button
this.close();بزن
چون از thread های دیگه ای توی برنامتون استفاده کردید پس با بستن فرم فقط ترد اصلی برنامه شما کارش خاتمه پیدا میکنه
اگه button ی به منظور خروج قرار دادید از Application.Exit() استفاده کنید و در غیر این صورت هم میتونی تو رویداد FormClosing از همین کد استفاده کنی
موفق باشی
در رویداد FormClosing باید متد CancelAsync() شیء BackgroundWorker رو فراخونی کنید.
منم همین مشکل رو دارم ! به نظر من باید اون Thread یا هرچی که هستند رو فراخوانی و Stop کرد و در آخر Application.Exit(); !
کاملا با آقای dev-dev-dev موافق هستم ...
من همین مشکل رو برای خودم با قرار دادن application.exit(); در رویداد form closing حل کردم .
سلام...
خدمت شما عارضم که در اینجور مواقع رویداد FormClosed هم فوق العاده کاربرد دارد...
با تشخل...