ايران ويج

نسخه‌ی کامل: ساخت روال (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;     
        



دوستان ميخواستم بدونم كه چطور به اندازه اي كه كابر ميخواد ترد تعريف كنم نه به صورت دستي
البته كدهاي همه ترد ها يكي هست.
سلام
اگه پردازش سنگین باشه، بهتره از 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;

البته کد ها رو یه جا جمع کردم پست قبل
خودتون سطر 5و6 رو داخل یه تابع بنویسین

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


راستی همیشه مواظب باشید که thread safe باشین read و write هاتون در هر شی
حالا اگه 10 بار سطر زیر رو داخل یه حلقه اجرا کنید، میشه خواسته شما(البته حواستون باشه لزوما همه شون همزمان شروع نمیشن)
کد php:
ThreadPool.QueueUserWorkItem(new WaitCallback(your_function), args);