c#的ThreadPool小结,就贴一段代码记录下一~

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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            ManualResetEvent eventX = new ManualResetEvent(false);
            bool b = ThreadPool.SetMaxThreads(12, 10);
            eventX.Reset();
            for (int i = 0; i < 20; i++)
            {
                thr t = new thr(eventX);
                ThreadPool.QueueUserWorkItem(new WaitCallback(t.ThreadProc), i);
            }
            eventX.WaitOne();
            Console.WriteLine("断点测试");
            Console.WriteLine("运行结束");
            Console.ReadKey();
        }

        public class thr
        {
            public ManualResetEvent eventX;
            public thr(ManualResetEvent e)
            {
                eventX = e;
            }
            public void ThreadProc(object i)
            {
                Console.WriteLine("Thread[" + i.ToString() + "]");
                Thread.Sleep(25000);
                Console.WriteLine("Thread[" + i.ToString() + "]" + "结束");
                if ((int)i == 19)
                {
                    eventX.Set();
                }
            }
        }
    }
}

你可能感兴趣的:(c#的ThreadPool小结,就贴一段代码记录下一~)