前台线程和后台线程的选择

本文阐述了在何种情况下应选择使用Thread对象而非线程池,包括需要非普通优先级线程、前台线程以防止程序提前终止、长时间计算密集型任务及需要随时中止线程等场景。

什么时候用Thread ,, 什么时候用 ThreadPool.. 

当符合以下条件时就用Thread对象,否则还是用线程池较好。

1.你需要线程允许一个非普通优先级。所有的线程池线程都允许在普通优先级。当然,这你可以改变,但是不推荐,在线程池操作过程中,优先级的改变不会持续。

  (线程的优先级..前台线程要高于后台线程.即使改变了后台线程的优先级..也不会持久)

2.你需要线程作为前台线程运转,从而防止程序终止一直到线程完成任务。线程池线程总是后台线程,如果CLR决定终止进程它们就不会完成任务。

  (在公共语言运行库因为资源回收或者报错要结束该后台进程的时候,是直接Kill的..是不会提示的,很有可能你的任务并没有完成掉)

3.受计算限制的任务需要时间非常长;这样,我不会让线程池负担逻辑,因为它试图找出是否需要创建一个额外的线程。

  (业务逻辑中需要创建的线程一般都使用前台线程,方便控制和追踪)

4.我想开始线程并很可能用Thread.Abort方法来过早的结束它。

  (需要自由控制,不用时会在控制下干掉他.)发松岛枫

 

 

转载自:   ^_^肥仔John   http://www.cnblogs.com/fsjohnhuang/archive/2012/01/29/2330834.html

转载于:https://www.cnblogs.com/iiwen/p/4318770.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值