繁体   English   中英

启动计时器后如何防止滴答声事件

[英]How to prevent a Tick event after a Timer has already been initiated

因此,我有一个要调用时间的Timer对象,并且时间有一个滴答事件,在经过60秒后将被调用。 我正在尝试使用time.Stop()方法,但仍调用time_Tick()。 如何防止Tick方法发生? 计时器启动后,是否无法退出? 谢谢! 我是Tick活动的新手。

计时器滴答可以同时到达,也可以在计时器停止后到达(出于根本原因)。 滴答声可能会在您停止计时器之前排队。

如果要可靠地停止计时器,请设置一个布尔标志并在tick事件处理程序中检查该标志。 如果已设置,请忽略勾号。

您需要同步对该标志的访问。

如果您还有其他计时器对象,则可能会看到以下内容

在Windows Forms应用程序内的任何计时器上调用Stop可能导致来自应用程序中其他Timer组件的消息立即得到处理,因为所有Timer组件均在主应用程序线程上运行。 如果您有两个Timer组件(一个设置为700毫秒,一个设置为500毫秒),并且在第一个Timer上调用Stop,则您的应用程序可能会首先收到第二个组件的事件回调。 如果证明有问题,请考虑在System.Threading命名空间中使用Timer类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM