【问题标题】:When starting a Dispatch Timer, is it necessary to stop it first?启动 Dispatch Timer 时,是否需要先停止它?
【发布时间】:2014-10-28 00:06:54
【问题描述】:

考虑以下 C# 代码:

                if (finalTextConvertTimer != null)
                {
                    if (finalTextConvertTimer.IsEnabled)
                    {
                        finalTextConvertTimer.Stop();
                    }
                    finalTextConvertTimer.Start();
                }

是否需要先停止定时器?这里的一位开发人员说不是。只是在寻找验证。

【问题讨论】:

  • 定时器存在(未释放),然后调用Stop() 是安全的,无需检查任何内容。
  • 如果你想重新启动让它再次计时完整的Interval,那么可以。
  • 是的,@HansPassant。目的是让计时器像第一次启动一样启动。我的同事坚持调用 Start() 无论如何都会这样做。
  • 这种争论是相当愚蠢的,你可以自己尝试一下或者看看at the source code。很容易看出,如果定时器已经启用,Start() 绝对不会做任何事情。
  • 那么,为什么微软会声称 Interval 已重新启动?

标签: c# dispatchertimer


【解决方案1】:

很抱歉没有先研究 MSDN。 来自方法文档(http://msdn.microsoft.com/en-us/library/system.windows.threading.dispatchertimer.start(v=vs.110).aspx):

开始重置计时器间隔。

【讨论】:

猜你喜欢
  • 2012-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多