所以我有一个Timer对象,我打算调用时间,时间有一个tick事件,在60秒后调用。我试图使用time.Stop()方法,但仍然调用time_Tick()。如何防止Tick方法发生? Timer启动后是否无法退出?谢谢!我是Tick事件的新手。
答案 0 :(得分:2)
定时器滴答可以在定时器停止后同时到达(基本原因)。在你停止计时器之前,蜱虫可以排队等候。
如果要可靠地停止计时器设置布尔标志并在tick事件处理程序中检查该标志。如果它设置了,则忽略勾号。
您需要同步对该标志的访问权限。
答案 1 :(得分:0)
如果您有其他计时器对象,则可能会看到this:
在Windows窗体应用程序中的任何计时器上调用Stop可以立即处理来自应用程序中其他Timer组件的消息,因为所有Timer组件都在主应用程序线程上运行。如果你有两个Timer组件,一个设置为700毫秒,一个设置为500毫秒,你在第一个Timer上调用Stop,你的应用程序可能会先收到第二个组件的事件回调。如果这证明有问题,请考虑在System.Threading命名空间中使用Timer类。