c#-如何立即停止计时器
我有一个间隔为100的系统计时器。我的问题是,若我在定时器中设置enable=false,定时器方法中的当前工作进程是否立即停止?或者在方法完成之后c#-如何立即停止计时器,c#,multithreading,timer,C#,Multithreading,Timer,我有一个间隔为100的系统计时器。我的问题是,若我在定时器中设置enable=false,定时器方法中的当前工作进程是否立即停止?或者在方法完成之后 private void watchTags(object obj, ElapsedEventArgs handler) { for(int i=0 ; i<10000;i++){ // some works } } private void stop_button(){
private void watchTags(object obj, ElapsedEventArgs handler)
{
for(int i=0 ; i<10000;i++){
// some works
}
}
private void stop_button(){
watcher.Enabled = false;
}
private void watchTags(对象对象对象,ElapsedEventArgs处理程序)
{
对于(int i=0;i执行timer.Enabled=false
将停止计时器。它与timer.stop();
timer.Enabled=false
=System.Threading.timer
或System.Timers.timer
timer.Stop();
=System.Windows.Forms.timer
如果您使用的是System.Timers.timer
您可以这样停止
timer.Enabled = false
如果您使用的是System.Threading.Timer
,请使用此选项
timer.Change(Timeout.Infinite , Timeout.Infinite)
或使用
timer.Stop();
如果您使用的是System.Windows.Forms.Timer
参考使用timer.Stop();
或timer.Enabled=false;
希望有帮助。好的。正如Vijay Kumbhoje在计时器完成后的评论中所说,watchTags方法中的任何进程都会立即结束,而不会完成工作。如果2020年有人到这里看到这个被接受的答案,这是不对的。已过的
事件不会随着计时器停止()
。这只会再次停止启动已用事件
而不会执行其他操作
我认为这篇文章中的答案是正确的:所以谷歌在你这方面不起作用..现在来吧..例如,这里有一篇@MethodMan的帖子,我已经知道了。我的问题是进程何时终止。在完成当前方法之后,或者一旦启用set,那么请解释如何调用watchTags..你有一个for循环,但是你想在for循环内做什么..从持续时间约为100毫秒的硬件读取一些数据如果你的方法处于time ticker事件下,它将停止而不完成进程。