C#線程池

來源:互聯網
上載者:User
using System;using System.Threading;public class ThreadTest{    static double number1 = -1;    static double number2 = -1;    public static void Main()    {        int maxThreadNum, portThreadNum;        int minThreadNum;        ThreadPool.GetMaxThreads(out maxThreadNum, out portThreadNum);        ThreadPool.GetMinThreads(out minThreadNum, out portThreadNum);        Console.WriteLine("最大線程數:{0}", maxThreadNum);        Console.WriteLine("最小線程數:{0}", minThreadNum);        int x = 15600;        Console.WriteLine("啟動第一個任務:計算{0}的8次方", x);        //ThreadPool.QueueUserWorkItem方法線上程池中建立一個線程池線程        //來執行指定的方法(用委託WaitCallback來表示),並將該線程排入線程        //池的隊列等待執行。        ThreadPool.QueueUserWorkItem(new WaitCallback(TaskProc1), x);//x作為TaskProc1方法的參數           Console.WriteLine("啟動第二個任務:計算{0}的8次方根", x);        ThreadPool.QueueUserWorkItem(new WaitCallback(TaskProc2), x);        while (number1 == -1 || number2 == -1) ;  //如果兩個數字有任意一個不變化,        //說明最少有一個線程沒運行完繼續迴圈直至線程池中所有線程運行完。        Console.WriteLine("y({0})={1}", x, number1 + number2);    }    static void TaskProc1(object o)    {        number1 = Math.Pow(Convert.ToDouble(o), 8);    }    static void TaskProc2(object o)    {        number2 = Math.Pow(Convert.ToDouble(o), 1.0 / 8.0);    }}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.