2011-03-26 94 views

回答

9

是的,没问题。评论无法停止计时器。使用

timer1.Stop(); 

((Timer)sender).Stop(); 
+4

+1对于'评论无法停止计时器':-)当我读到它时,我将我的啤酒洒在了屏幕上,很有趣。 – 2011-03-26 22:28:20

+0

lol,naa我知道timer1.stop()只是忘了添加它:> – brux 2011-03-26 22:31:11

+0

还要注意,如果间隔很小,那么最好在tick函数的开始处停止计时器,然后在最后开始计时在finally块中)。否则两个滴答可能会重叠,如果有一个缓慢的数据库调用或类似的东西。 – ingo 2011-03-26 22:31:23

0

有没有问题从Tick事件处理程序中停止定时器。到底是什么addedToFriendsCountfollowJobFinished?您的错误是其中一个或//stop the timer的代码。

0

是的,从Tick事件停止定时器没有问题。该事件在主线程中运行,因此访问Timer控件时不会出现跨线程问题。

您可以通过调用Stop方法或将Enabled属性设置为false来停止计时器。

+0

,并且这也意味着tiemr tick事件可以在另一个已经启动的线程上调用thread.abort()。 – brux 2011-03-26 22:36:05

+0

@brux:它可以,但使用'Abort'来停止线程可能会导致问题。该线程将停止在它正在执行的任何过程中,所以除非它只是等待中止,否则不可能正确编写处理中止的代码。 – Guffa 2011-03-26 23:00:48

+0

交叉线程问题将取决于正在使用哪个Timer类。 OP不说。 – 2011-03-26 23:26:15