将方法排入队列以便执行,并指定包含该方法所用数据的对象。此方法在有线程池线程变得可用时执行。
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
深入了解一下啊