[英]How to Prevent a MouseMove Event from Firing After the Mouse has been Programmatically Moved
[英]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.