一般来说在尽可能的情况下使用线程池
除了以下的4个情况
- 需要手动控制线程运行在非默认的优先级上(不推荐)
- 需要表现为前台线程
- 需要长时间的运行一个任务
- 想要手动控制一个线程的生命周期(例如Abort)
-------------------------------
其实我觉得还有两个重要的方面
线程池是全局共享的,也就是说一个程序往线程池里面塞入一些任务 ,那么必然会影响到其他人
极端的情况,就是你占用了所有的线程池中的对象,而其他程序就无法正常运行了(包括.net本身的一些线程)
那么关键就是
不要长时间或者大量占用线程池,除非能够确定当前程序是这个服务器上最重要的程序
在较大压力的服务器上,或者你预期程序会消耗大量的资源,最好自己实现一个可控制的线程池(例如CodeProject上面的一些开源实现),这样你可以更好的控制和调度系统资源的使用.