使用线程池可以更好的控制一系列线程的运行状态。msdn参考文档
http://msdn.microsoft.com/zh-cn/library/3dasc8as(VS.80).aspx
这里面ms把ThreadPool描述的很清楚了,但是它的例子太简单,只是简单介绍了如何用信号量数组来控制线程池的成员。一个更好的例子在ThreadPool.GetMaxThreads的介绍文档中。
http://msdn.microsoft.com/zh-cn/library/system.threading.threadpool.getmaxthreads(VS.80).aspx
对于没有深入接触过线程或者文件读写的初学者来说,这个例子比较难懂,但是我还是建议你尽量搞清楚里面的每行代码。他的示例说明不够明了,大致就是一个辅助线程通过手动调用,两个io线程通过FileStream的异步调用,而"并且根据计算机处理器的速度和数目,由一个或两个完成端口线程处理写入操作" 这句的意思是,两个fileWriter.BeginWrite依次调用,就会在线程池中排队,如果没有足够的io线程,两个不一定会并发。