نمایش نتایج 1 تا 8 از 8

نام تاپیک: thread.pause -> thread.abort -> ERROOOOR

  1. #1
    کاربر جدید آواتار black_wear
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    ایران
    پست
    20

    thread.pause -> thread.abort -> ERROOOOR

    سلام
    ببخشید اگه شاید بحث تکراری است.
    در کار با thread ها اگر threadی را pause نماییم و قبل از اجرای مجدد آن( resume) کاربر از برنامه خارج شود برنامه اتمام پیدا نخواهد کرد و در حافظه باقی خواهد ماند. حال چه باید کرد تا هنگام بستن برنامه همه thread ها خاتمه یابند؟

  2. #2
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    تهران
    پست
    1,025

    نقل قول: thread.pause -> thread.abort -> ERROOOOR

    توی فایل Program برنامه کد زیر رو اضافه کنید


    Application.ThreadExit+=newEventHandler(Application_ThreadExit);


    بعد متد زیر رو همونجا ایجاد کن و توش تمام thread ها رو ببند


    private
    void Application_ThreadExit(object sender, EventArgs e)
    {

    }

  3. #3
    کاربر جدید آواتار black_wear
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    ایران
    پست
    20

    نقل قول: thread.pause -> thread.abort -> ERROOOOR

    برنامه را اینجا قرار می دهم اگه میشه اون رو بگیرید قسمت هایی رو که گفتید روی اون برام مشخص کنید.
    در ضمن مشکل دیگری هم که وجود داشت اینه که اگه threadی pause بشه بعد abort بشه برنامه با مشکل مواجه میشه.
    ممنون میشم اگه راهنمایی ام کنید.
    فایل های ضمیمه فایل های ضمیمه

  4. #4
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    تهران
    پست
    1,025

    نقل قول: thread.pause -> thread.abort -> ERROOOOR

    threading (windows form).rar

    اگه بازم کارت راه نیفتاد بگو
    فایل های ضمیمه فایل های ضمیمه

  5. #5
    کاربر جدید آواتار black_wear
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    ایران
    پست
    20

    نقل قول: thread.pause -> thread.abort -> ERROOOOR

    خیلی ممنون که جوابمو دادید
    البته یه مشکلی هست! اولا چطوری در program.cs ، به نخها دسترسی داشته باشم ؟
    و حال اگر منظور شما اینه که قبل اتمام برنامه thread ها را یکی یکی abort کنم فکر کنم این روش درستش نباشه!! (البته اگه منظور شما این بوده باشه)

  6. #6
    کاربر دائمی آواتار mostafaaa
    تاریخ عضویت
    دی 1386
    محل زندگی
    جزیره کیش
    پست
    723

    نقل قول: thread.pause -> thread.abort -> ERROOOOR

    نقل قول نوشته شده توسط black_wear مشاهده تاپیک
    سلام
    ببخشید اگه شاید بحث تکراری است.
    در کار با thread ها اگر threadی را pause نماییم و قبل از اجرای مجدد آن( resume) کاربر از برنامه خارج شود برنامه اتمام پیدا نخواهد کرد و در حافظه باقی خواهد ماند. حال چه باید کرد تا هنگام بستن برنامه همه thread ها خاتمه یابند؟
    دوست من فقط کافی در رویداد FormClosing کد زیر رو استفاده کنید تا همه Thread ها هم بسته بشن.
     System.Environment.Exit(0);

    یا علی

  7. #7
    کاربر جدید آواتار black_wear
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    ایران
    پست
    20

    نقل قول: thread.pause -> thread.abort -> ERROOOOR

    آقا مصطفی خیلی ممنون یکی از مشکلاتم حل شد .
    ولی مشکل دیگه ام هنوز حل نشده کسی راه حل نداره؟
    مشکل این بود: اگه threadی pause بشه بعد abort بشه برنامه با مشکل مواجه میشه.
    ممنون میشم اگه راهنمایی ام کنید

    راه حل خودم این بود که در قسمت مربوط به لغو THREAD این کد را بنویسم:

    if (thread1.ThreadState == ThreadState.Suspended || thread1.ThreadState == ThreadState.SuspendRequested)
    {
    thread1.Resume();
    thread1.Abort();
    }
    else
    thread1.Abort();

    و البته مشکل هم حل میشه ولی آیا راه درستش همینه؟!

  8. #8
    کاربر جدید آواتار black_wear
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    ایران
    پست
    20

    نقل قول: thread.pause -> thread.abort -> ERROOOOR

    کسی اینجا جواب سوال من را بلد نیست؟!

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •