不让System.Timers.Timer同一时间多次生成定期事件
2010-02-25 09:12 幸 阅读(471) 评论(0) 编辑 收藏 举报
System.Timers.Timer 在使用时,每隔一个时间间隔,就会产生一个定期事件,而并不关心上次的产生的事件是否已经完成。
有时候我们设定的时间间隔很短,但是事件的执行时间可能很长,并且事件执行中的资源只能提供给一个事件单独使用,这时候我们希望一个时间间隔只有一个事件在执行,即在当前事件执行完后,下一个时间间隔才开始,然后再产生下一个事件(如图:时间间隔1---->事件1----->时间间隔2----->事件2 ...)
代码如下:
System.Timers.Timer timer = new System.Timers.Timer();
timer.Interval = 1000;
timer.Elapsed += new ElapsedEventHandler(timerEvent);
private void timerEvent(object sender, EventArgs e)
{
((Timer)sender).Enabled = false; // 执行前先停止计时
// do something
((Timer)sender).Enabled = true; // 执行后再开始
}
timer.Interval = 1000;
timer.Elapsed += new ElapsedEventHandler(timerEvent);
private void timerEvent(object sender, EventArgs e)
{
((Timer)sender).Enabled = false; // 执行前先停止计时
// do something
((Timer)sender).Enabled = true; // 执行后再开始
}
参考:http://topic.csdn.net/u/20070425/11/fb78e8a3-03e7-4d82-a54c-8bd6de39f908.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架