社区
C#
帖子详情
System.Timers.Timer停不下来?
yzy8788
2010-06-13 07:58:11
Timers.Timer Timer1 = new Timers.Timer(1000);
当Timer1正在繁忙的时候,好像用Timer1.Stop()或Timer1.Enabled=false;都停不下来这个时钟,Timer1继续干活。
有什么好的办法,可以让其停下来呢?
...全文
666
10
打赏
收藏
System.Timers.Timer停不下来?
Timers.Timer Timer1 = new Timers.Timer(1000); 当Timer1正在繁忙的时候,好像用Timer1.Stop()或Timer1.Enabled=false;都停不下来这个时钟,Timer1继续干活。 有什么好的办法,可以让其停下来呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
以专业开发人员为伍
2010-06-18
打赏
举报
回复
在 Elapsed 处理方法中,第一句话应该是调用 Timer 的 Stop 方法,最后一句话应该是调用 Timer 的 Start 方法,你作对了吗?
jianuMan
2010-06-18
打赏
举报
回复
Timer的作用是 一定间隔时间 触发某个事件,
Timer。Stop() 是保证下次时间间隔到了 也不会促发timer 时间
并不是让当前未完成的timer事件 停止
如果你想停止当前事件的话,应该用线程调用。
宇峰科技
2010-06-18
打赏
举报
回复
学习。。。。
simonezhlx
2010-06-18
打赏
举报
回复
定时器的开关逻辑应该放在 Elapsed 处理方法中
易企加_天马行空
2010-06-15
打赏
举报
回复
一楼其实已经解释清楚了
通俗点讲,就是不是timer本身去定时运行代码,timer其实只是一个系统的滴答而已,到点了它就去启动一个线程压入到线程池去执行代码。
所以你会发现,在系统忙碌的时候,timer好像不准,就是因为可能在线程池里排队,没有及时运行。
还有就是如果你的代码执行时间很长,就有可能前一次还没执行完成,后一次又开始了。
导致这些现象的原因就是我上面的说的原理导致的。
leavemaple
2010-06-15
打赏
举报
回复
public 方法()
{
Timers.Timer Timer1 = new Timers.Timer(1000);
}
这样肯定停止不了
private static Timers.Timer timer1 ;
public Form_Load()
{
timer1 = new Timers.Timer(1000);
}
这样才可以停止,你说停止不了,是因为你每次都new了一个timer吧,你所要停止的timer,并不是你之前new的那个timer,所以造成了STOP ENABLE = FALSE;都无法停止。
jianshao810
2010-06-13
打赏
举报
回复
能不能直接将事件去除
xray2005
2010-06-13
打赏
举报
回复
你的代码怎么写的?贴上来看看。
wuyq11
2010-06-13
打赏
举报
回复
System.Timers.Timer timer = new System.Timers.Timer();
public Form1()
{}
类中使用
委托异步调用
捷哥1999
2010-06-13
打赏
举报
回复
这个问题,第二次遇到了。
看 system.timers.timer.stop 的帮助
http://msdn.microsoft.com/zh-cn/library/system.timers.timer.stop%28v=VS.100%29.aspx
说明
Elapsed 事件在 ThreadPool 线程上引发,因此事件处理方法可以运行在一个线程上,同时 Stop 方法调用运行在另一个线程上。这可能导致在调用 Stop 方法后引发 Elapsed 事件。此主题的代码示例演示了一种防止争用条件的方法。
C#中Forms.
Timer
、
Timer
s.
Timer
、Threading.
Timer
的用法分析
本文实例讲述了C#中Forms.
Timer
、
Timer
s.
Timer
、Threading.
Timer
的用法分析,分享给大家供大家参考。具体分析如下: 在.NET Framework里面提供了三种
Timer
① System.Windows.Forms.
Timer
② System.
Timer
s.
Timer
③ System.Threading.
Timer
现分述如下: 一、System.Windows.Forms.
Timer
1、基于Windows消息循环,用事件方式触发,在界面线程执行;是使用得比较多的
Timer
,
Timer
Start之后定时(按设定的Interval)调用挂接在Tick事
asp.net中System.
Timer
s.
Timer
的使用方法
我们经常会在网站中加一些定时执行的任务,比如生成静态页、执行邮件发送等。 可以通过在Global.asax中这样设置来实现。 代码如下: void Application_Start(object sender, EventArgs e) { // 在应用程序启动时运行的代码 System.
Timer
s.
Timer
MT = new System.
Timer
s.
Timer
(); MT.Enabled = true; MT.Interval = 1000; MT.Elapsed +
c# windows服务小实例,不能使用windows.form.
timer
控件,而是使用System.
Timer
s.
Timer
控件
c# windows服务小实例,不能使用windows.form.
timer
控件,而是使用System.
Timer
s.
Timer
控件,否则,在启动服务后将不能出现预期的效果,本实例在VS2005+SQL2005(SQL2008)环境下已经调试通过,望能抛砖引玉。
详解C#中的System.
Timer
s.
Timer
定时器的使用和定时自动清理内存应用
主要介绍了详解C#中的System.
Timer
s.
Timer
定时器的使用和定时自动清理内存应用,需要的朋友可以参考下
C#多线程刷新界面卡死测试程序
1、测试调用委托时BeginInvoke和Invoke的表现差异 2、System.
Timer
s.
Timer
多线程刷新界面 3、System.Threading.ThreadPool多线程刷新界面 4、System.Threading.Thread多线程刷新界面
C#
110,533
社区成员
642,574
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章