System.Timers.Timer与线程相关的问题

nyq1999 2009-06-08 06:01:31
Timer的Elapsed事件是在固定间隔事件执行,应该是隔一段事件就从线程池里生出一个线程来执行,如果我设置间隔时间很短,比如说1秒,然后线程执行时间却较长,比如5分钟,那Timer定时调用的话得生出多少线程,是不是很不安全,如何能限定timer的线程数量(不是单线程的就行比如5到7个线程)。线程做的固定工作是从数据库中取出数据,调用外部接口操作完成后删除数据。因为调用了外部接口所以线程运行时间可能会是个未知数且不稳定。
...全文
173 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
设置一个公共的bool值IsRuntime,用它来做开关,及时timer运行了线程,检查到这个值为true就自动过去了

还有就是自己用长线程写一个类似timer的东西,定时做就可以了。
angel6709 2009-06-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 nyq1999 的帖子:]
Timer的Elapsed事件是在固定间隔事件执行,应该是隔一段事件就从线程池里生出一个线程来执行,如果我设置间隔时间很短,比如说1秒,然后线程执行时间却较长,比如5分钟,那Timer定时调用的话得生出多少线程,是不是很不安全,如何能限定timer的线程数量(不是单线程的就行比如5到7个线程)。线程做的固定工作是从数据库中取出数据,调用外部接口操作完成后删除数据。因为调用了外部接口所以线程运行时间可能会是个未知数且不稳定。
[/Quote]
顶了学习
nyq1999 2009-06-09
  • 打赏
  • 举报
回复
设定一个公共资源,imutex,用于记录连接数就可以了。只要达到上限就停止。
==============================================================================
这种公共资源以什么形式限制,静态全局变量,缓存,还是还有什么其他好的办法。
光宇广贞 2009-06-08
  • 打赏
  • 举报
回复
设定一个公共资源,imutex,用于记录连接数就可以了。只要达到上限就停止。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧