好记性不如烂笔头。

关于线程池ThreadPool参数workerThreads与completionPortThreads

关于线程池ThreadPool SetMaxThreads(int workerThreads, int completionPortThreads) 2个参数的区别
workerThreads:线程池中的最大工作线程数
completionPortThreads:线程池中异步 I/O 线程的最大数目

工作线程将用于活动工作,例如将工作项目发布到ThreadPool时,I/O完成线程用于等待异步I/O完成,例如等待数据在网络上接收。I/O完成线程不会花费太多时间来做这些事情,他们只会阻塞,直到他们收到信号。
ThreadPool中有两组线程的原因是因为他们所做的工作,由于I/O线程可能会阻塞较长时间,因此不太适合与活动工作队列共享这些线程,这一切都归结为优化线程数量到系统中可用的内核数量。