国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

線程系列06,通過CLR代碼查看線程池及其線程

2019-11-17 02:52:26
字體:
來源:轉載
供稿:網友

線程系列06,通過CLR代碼查看線程池及其線程

在"線程系列04,傳遞數據給線程,線程命名,線程異常處理,線程池"中,我們已經知道,每個進程都有一個線程池。可以通過TPL,ThreadPool.QueueUserWorkItem,委托與線程池交互。本篇體驗:通過查看CLR代碼來觀察線程池及其線程。

□ 通過編碼查看線程池和線程

使用ThreadPool的靜態方法QueueUserWorkItem把線程放入線程池,來看線程池線程和主程序線程的執行情況。

    class PRogram
    {
        static void Main(string[] args)
        {
            Console.WriteLine("主線程開始");
            for (int i = 0; i < 5; i++)
            {
                ThreadPool.QueueUserWorkItem(SayHello, i);
            }
            Console.WriteLine("主線程結束");
        }
        static void SayHello(object arg)
        {
            int n = (int) arg;
            Console.WriteLine("線程{0}接收到的參數是:{1},是否是后臺線程:{2}",
                Thread.CurrentThread.ManagedThreadId,
                n,
                Thread.CurrentThread.IsBackground);
        }       
    }

20

○ 用QueueUserWorkItem方法加入線程池的線程是后臺線程○ 一旦主線程結束,后臺線程隨即結束○ 在主程序for語句塊中,有2個線程已被創建并執行

讓主線程和線程池線程都Sleep一段時間。

   class Program
    {
        static Random r = new Random();
        static void Main(string[] args)
        {
            Console.WriteLine("主線程開始");
            for (int i = 0; i < 5; i++)
            {
                ThreadPool.QueueUserWorkItem(SayHello, i);
            }
            Thread.Sleep(r.Next(250, 500));
            Console.WriteLine("主線程結束");
        }
        static void SayHello(object arg)
        {
            Thread.Sleep(r.Next(250, 50
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 馆陶县| 耿马| 宁国市| 通海县| 上犹县| 虞城县| 东平县| 娱乐| 夏邑县| 囊谦县| 金溪县| 通海县| 永平县| 克山县| 延寿县| 东平县| 河间市| 梅河口市| 石渠县| 临高县| 堆龙德庆县| 湛江市| 英山县| 望奎县| 大冶市| 武强县| 布尔津县| 石门县| 肃南| 香河县| 山阴县| 尉氏县| 游戏| 平塘县| 泾源县| 平昌县| 芦山县| 合作市| 安达市| 炎陵县| 阿拉善左旗|