امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
ساخت روال (Sub) بي نهايت
نویسنده پیام
mahdi321 آفلاین
كاربر تک ستاره
*

ارسال‌ها: 55
موضوع‌ها: 23
تاریخ عضویت: اسفند ۱۳۹۲

تشکرها : 2628
( 13 تشکر در 5 ارسال )
ارسال: #1
ساخت روال (Sub) بي نهايت
سلام
کد php:
public static ThreadStart TSOne = new ThreadStart(ThreadOne);
 
    
 
public static Thread TOne = new Thread(TSOne);

 
       public static void ThreadOne()
 
       {
 
           while (TOne.IsAlive)
 
          Cod Haye Man;     
        



دوستان ميخواستم بدونم كه چطور به اندازه اي كه كابر ميخواد ترد تعريف كنم نه به صورت دستي
البته كدهاي همه ترد ها يكي هست.

دل خوش از آنيم که حج ميرويم*غافل از آنيم که کج ميرويم
کعبه به ديدار خدا ميرويم*او که همينجاست کجا ميرويم
حج بخدا جز به دل پاک نيست*شستن غم از دل غمناک نيست
دين که به تسبيح و سر و ريش نيست*هرکه علي گفت که درويش نيست
صبح به صبح در پي مکر و فريب*شب همه شب گريه و امن يجيب
۱۹-شهریور-۱۳۹۴, ۱۲:۱۳:۵۱
ارسال‌ها
پاسخ
salehjg آفلاین
مدیر بخش
*****

ارسال‌ها: 1,281
موضوع‌ها: 133
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 9560
( 8557 تشکر در 2603 ارسال )
ارسال: #2
RE: ساخت روال (Sub) بي نهايت
سلام
اگه پردازش سنگین باشه، بهتره از ThreadPool.QueueUserWorkItem استفاده کنید، اینطوری بسته به تعداد هسته cpu خودش حالت و تعداد مناسب رو اجرا میکنه و باقی ترد ها رو منتظر نگه میداره
متغیر هایی که میخواین به فانکشن اتون بفرستین، رو در قالب یه struct بهش تحویل بدین، و داخل فانکشن، متغییر هارو از استراکت استخراج کنید

کد php:
struct ARGS
{
int a;
}
ARGS args = new ARGS();
ThreadPool.QueueUserWorkItem(new WaitCallback(your_function), args);

void your_function(object args_in)
{
ARGS input args_in as ARGS;

int a=input.a;

۲۰-شهریور-۱۳۹۴, ۰۲:۳۷:۵۳
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : mahdi321
salehjg آفلاین
مدیر بخش
*****

ارسال‌ها: 1,281
موضوع‌ها: 133
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 9560
( 8557 تشکر در 2603 ارسال )
ارسال: #3
RE: ساخت روال (Sub) بي نهايت
البته کد ها رو یه جا جمع کردم پست قبل
خودتون سطر 5و6 رو داخل یه تابع بنویسین

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


راستی همیشه مواظب باشید که thread safe باشین read و write هاتون در هر شی
(آخرین ویرایش در این ارسال: ۲۰-شهریور-۱۳۹۴, ۰۲:۴۴:۰۰، توسط salehjg.)
۲۰-شهریور-۱۳۹۴, ۰۲:۴۰:۴۱
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : mahdi321
salehjg آفلاین
مدیر بخش
*****

ارسال‌ها: 1,281
موضوع‌ها: 133
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 9560
( 8557 تشکر در 2603 ارسال )
ارسال: #4
RE: ساخت روال (Sub) بي نهايت
حالا اگه 10 بار سطر زیر رو داخل یه حلقه اجرا کنید، میشه خواسته شما(البته حواستون باشه لزوما همه شون همزمان شروع نمیشن)
کد php:
ThreadPool.QueueUserWorkItem(new WaitCallback(your_function), args); 
۲۰-شهریور-۱۳۹۴, ۰۲:۴۶:۲۳
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : mahdi321


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  روش خروج از یک روال relax_cp 1 2,411 ۱۹-مرداد-۱۳۸۹, ۱۳:۳۰:۵۵
آخرین ارسال: relax_cp

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS