C# 线程池(ThreadPool),秒表(Stopwatch)


using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace ThreadPoolDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            Stopwatch sw = new Stopwatch();  //秒表,用于计算运行所花费的时间。
            sw.Start();
            for (int i = 0; i < 1000; i++)
            {
                new Thread(() =>
                  {
                      int i2 = 1 + 1;
                  }).Start();   //用匿名函数创建线程。计算不使用线程池时,所花费的时间。
            }
            sw.Stop();
            Console.WriteLine(sw.Elapsed.TotalMilliseconds);

            sw.Reset();  //重置秒表,计算使用线程池时,所花费的时间
            sw.Restart();
            for (int i = 0; i < 1000; i++)
            {
                //使用线程池
                ThreadPool.QueueUserWorkItem(new WaitCallback(PoolCallBack), "sss" + i);  //委托WaitCallback。"sss"+i表示PoolCallBack函数的参数,在此处是无意义的
                //ThreadPool.GetMaxThreads
            }
            sw.Stop();
            Console.WriteLine(sw.Elapsed.TotalMilliseconds);

            Console.ReadKey();
        }
        //委托的注册函数
        private static void PoolCallBack(object state)
        {
            int i = 1 + 1;
        }
    }
}


你可能感兴趣的:(C#,ASP.NET,c#,线程池,多线程)