关于服务的问题

tristan0429 2009-01-12 08:37:19
使用Timer,假如Timer设置为每10秒执行一次。

如果Timer里的代码执行时间超出10秒会怎么样??

谢谢大侠!
...全文
106 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
消失的尘芥 2009-01-12
  • 打赏
  • 举报
回复
一般的程序时间不会超过十秒的,如果超过的话,我也没试过!呵呵,楼主可以试试,把时间简短
HDNGO 2009-01-12
  • 打赏
  • 举报
回复
.NET一共有3个Timer:

1. System.Windows.Forms.Timer:
是通过Windows消息出发OnTimer事件的,Tick事件总是触发在程序的主线程(UIThread)上(1. 不是新线程)。如果主线程忙(例如,上一次的Tick还没有执行完),消息就得不到及时处理(2.等待前一个完成)。

2. System.Timer.Timer和System.Threading.Timer:
前者是通过调用Windows的WaitableTimer实现的,后者是.NET的简单的Thread.Sleep实现。两个实现都是用了.NET线程池(ThreadPool),所以Elapsed事件会在ThreadPool里选择一个线程执行(1. 不一定是新线程,但肯定不是建立Timer的线程)。这样做的好处是如果前一次Elapsed没有完成,后一次的可以从ThreadPool里选一个新的线程开始执行。(2. 在新线程上直接开始)。

111,131

社区成员

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

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

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