我想知道是否有某种方法可以暂时暂停计时器然后重新启动它。
我有一个方法“DoSomething()”,可以从计时器事件中调用,也可以在称为“Chooser()”的不同方法中调用。DoSomething() 应该从计时器 OR Chooser() 中调用,但不应调用两次。
问题是Chooser() 需要一些时间来决定它是否应该调用DoSomething()。当 Chooser() 决定是否也应该调用 DoSomething() 时,不应调用 DoSomething()。这将导致 DoSomething() 被调用两次。
如果 Chooser() 确实选择调用 DoSomething() 它将禁用计时器。同样,如果计时器调用 DoSomething(),它将禁用 Chooser() 中的代码。
我正在考虑在选择器()的开头删除计时器事件处理程序,然后在选择器()的末尾重新添加它。但是,这不起作用,因为计时器可能会在 Chooser() 运行时触发事件,并且不会处理该事件。
我不认为我可以使用锁,因为我只想调用 DoSomething() 一次。
如果我可以在 Chooser() 开始时暂停计时器,然后在最后重新启动它,那将是理想的,但我不相信这种可能性存在。
我可以添加一个标志,但我想知道是否有更好的东西。