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

نام تاپیک: بسیار مهم در مورد نخ اجرایی

  1. #1

    بسیار مهم در مورد نخ اجرایی

    سلام دوستان یک سئوال دارم که سعی میکنم ساده مطرح کنمش :

    من متدی در برنامه دارم با نام X که این متد قرار هست یک کار زمانبر رو انجام بده (مثلا جستجو در بین 1000 PictureBox روی فرم و تصویر دهی برخی از آنها)

    این تابع زمان بر، در رویداد های مختلفی مورد استفاده قرار میگیره، در واقع بیش از یکبار اجرا میشه و دفعات اجراش مشخص نیست.

    میخواستم بدونم که چکار باید بکنم که این متد X، هربار که فراخوانده میشه در یک ریسمان جدا اجرا بشه و فرم اصلی ما Freeze نشه.

    نکته اینجاست که نمیشه از System.Thread استفاده کرد چون کنترل های روی فرم در UI Thread هستند و دسترسی بهشون از یک نخ دیگه باعث ایجاد Cross میشه.

    البته من ویدئو های دوست عزیز،آقای طباطبایی رو در مورد AsyncCallBack دیدم اما تاحالا نتونستم تو پروژم پیادش کنم

    اگر کسی از دوستان بتونه تو یک مثال، این تابع X مجازی رو پیاده کنه واقعا ازش ممنون میشم

  2. #2
    VIP آواتار Sajjad.Aghapour
    تاریخ عضویت
    مهر 1386
    محل زندگی
    اهل کاشانم .. روزگارم بد نیست
    پست
    1,265

    نقل قول: بسیار مهم در مورد نخ اجرایی

    شما به چند روش میتونید این کار رو بکنید.ولی در مورد کار شما بهتره از backgroundWorker استفاده کنید.

    در کاری که شما می خواین انجام بدید باید توجه داشته باشید که نخ در حال اجرا نمی تونه دوباره فراخوانی بشه و باید هرگونه ورود به اون در حال اجرا lock بشه....
    می تونید به همون روش AsyncCallBack هم پیاده سازی کنید ولی bgWorker بهترین گزینه برای شما خواهد بود...
    ...
    موفق باشید/
    ...
    Close your eyes, take a deep breath, click your heels three times, and say, "There's no better thing than Inversion of Control and Dependency Injection, generic specialization, the decorator pattern, chains of responsibilities, and extensible software."

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

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