我們當時使用了 ThreadPool 且並沒有透過 ThreadPool.SetMaxThreads 設定同時執行的 Threads 上限，當時的電腦是單 CPU + 單核心，因此程式執行的相安無事。
經查詢資料得知，在 .NET 2.0 SP1 之前，每個 CPU 或每個核心(Core)預設 ThreadPool 的同時執行緒上限是 25 個 Threads，但在 .NET 2.0 SP1 以後卻調整到 250 個 Threads，這是個很大的差別，以致於我們一個程式中同時開啟太多個 Console Application，超出了系統可接受的上限，所以許多程式都沒有執行完就自動結束了，況且客戶的新電腦是雙 CPU + 四核心，你可想見程式不出問題也難！
最後，我們利用 ThreadPool.SetMaxThreads 這個靜態方法設定同時執行的 Threads 上限，這個問題就迎刃而解：
每一個處理序都會有一個執行緒集區。執行緒集區的預設大小為每個可用處理器 25 個背景工作執行緒，以及 1000 個 I/O 完成執行緒。您可以使用 SetMaxThreads 方法變更執行緒集區中的執行緒數目。每個執行緒都使用預設的堆疊大小，並且按照預設的優先權來執行。
我個人是覺得可能是因為翻譯的關係，當英文版文件修訂的時候其他國家翻譯文件不見得能夠立即更新，如果單單查閱中文版的 MSDN 文件也是有可能會吸收到錯誤的資訊。