【C#】线程池

将方法排入队列以便执行,并指定包含该方法所用数据的对象。此方法在有线程池线程变得可用时执行。

   class Program
    {
        static void Main(string[] args)
        {
            string[] list = new string[]{
                "EAB359633247.txt",
                "EAC359447924.txt",
                "EAD359283672.txt",
                "QAB334739161.txt",
                "QAC334874329.txt",
                "QAD334931408.txt",
                "QAE334973681.txt",
                "QAF334586595.txt",
                "QAG335040631.txt",
                "QAH335112451.txt",
                "TAB360175903.txt",
                "TAC359335089.txt",
                "TAD359849565.txt",
                "TAE359493883.txt",
                "TAF359072765.txt",
                "TAG359288491.txt",
                "TAH359103475.txt",
                "TAI359798913.txt"};
            foreach (string path in list)
            {
                Console.WriteLine("塞进线程池:" + path);
                MyThread th = new MyThread();
                th.Path = path;
                // 将需要处理的内容一次性塞进线程池(无需等待处理完成)
                // 线程池会寻找可用线程来处理任务(多线程)
                ThreadPool.QueueUserWorkItem(new WaitCallback(th.Run));
                // 和上面等价 ThreadPool.QueueUserWorkItem(th.Run);
            }
            Console.ReadLine();
        }
    }

    public class MyThread
    {
        public string Path
        {
            get;
            set;
        }

        public void Run(object o)
        {
            //todo 
            Console.WriteLine("已处理:" + Path);
        }
    }

看下这位同学自己实现的 

http://blog.csdn.net/sq_zhuyi/article/details/6869661

深入了解一下啊

原文地址:https://www.cnblogs.com/viewcozy/p/4625700.html