首页 新闻 会员 周边 捐助

C#线程池与Timer

0
[已解决问题] 解决于 2019-02-12 09:17

我有一个Windows服务,其中有一个Timer,另外当服务启动时,服务会将从外部获取的大量数据放进线程池处理,这时调试时发现,Timer很难抢到资源,只有当线程池不那么阻塞时才会执行Timer的操作,我看了资料,Timer也被算入线程池的线程中,有没有办法保护Timer始终占有一个线程,不收Threapool高并发的影响

MSky的主页 MSky | 菜鸟二级 | 园豆:436
提问于:2018-04-17 16:42
< >
分享
最佳答案
0

你的Timer是什么类型Timer?

奖励园豆:5
毛毛虫 | 菜鸟二级 |园豆:437 | 2018-04-23 10:35

System.Timers

MSky | 园豆:436 (菜鸟二级) | 2018-05-02 11:52
其他回答(2)
0

markkk

猝不及防 | 园豆:2878 (老鸟四级) | 2018-04-17 16:57
1

换个思路,用Thread,设置它的优先级高一点,并且是new出来的,这样就不归线程池管。然后在Thread里面用一个while(true)的循环来控制逻辑,时间间隔就用Thread.Sleep()来处理。

GISwilson | 园豆:202 (菜鸟二级) | 2019-02-12 11:28

可惜已经结贴了,你这个才是对的,后来我就是通过使用Thread,设置较高一集的优先级,问题解决

支持(0) 反对(0) MSky | 园豆:436 (菜鸟二级) | 2019-02-18 17:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册