c# timer 始终启用性能

Posted

技术标签:

【中文标题】c# timer 始终启用性能【英文标题】:c# timer Always enabled Performance 【发布时间】:2015-09-25 12:33:06 【问题描述】:

我想让一个计时器在一天中 100% 运行,但不确定这是否会导致问题。大多数情况下,它将每分钟打勾一次,并将 DateTime.Now 与 5 个存储值进行比较。

理论上,运行此计时器是否意味着我每分钟会受到一次性能影响,或者涉及的最少代码会产生问题。

【问题讨论】:

计算机每秒可以执行数百万次操作。每分钟将当前时间与 5 个 DateTime 值进行比较不会导致性能问题... 即使在这种情况下没有必要,一个好的做法是在事件处理程序代码开始时禁用计时器并在事件处理程序结束时重新启用它。 所以每分钟打勾一次,运行处理程序(委托函数)然后重新启动计时器?这不会造成委托完成执行所需的时间吗?意味着每个滴答声可能是 1 分 1 秒? @涂鸦 @ModS 写道“意味着每个刻度可能是 1 分 1 秒”:确实。但是,对于需要精确计时的操作来说,计时器并不是真正的最佳方法。 @graffito 停止计时器的原因是什么?就像我只是让计时器一直运行而不停止它会发生什么 【参考方案1】:

没有足够的代码来产生任何明显的性能影响。计时器在一个或多个事件接收器中执行代码,并将使用最少的 CPU 周期。

【讨论】:

谢谢,我真的需要保持时间,并希望启用这个恒定的“计时器”可能会影响性能。我很感激:) 您打算如何使用比较数据?您需要多准确的比较? 我在我的应用程序中创建了一个“提醒”部分。用户填写了一些字段,一个提醒“出现”在他们的“提醒”区域。一旦提醒器显示消息的时间,它将显示用户选择的任何消息。我希望能够在他们指定的同一分钟内提醒用户,但秒对我来说并不重要 @ModS 而不是每分钟触发一次以查看是否有任何提醒来显示为什么不为每个提醒制作一个计时器,并将其持续时间设为您创建它的时间和它的时间之间的时间应该会消失。 @ScottChamberlain 由于“不可预见”的问题,我害怕走那条路,例如用户重新启动应用程序,切换会话,例如“锁定他们的计算机”,但是现在我看着它这可能只是一条更有效的路线。您能想到我可能需要针对哪些问题进行编程吗?

以上是关于c# timer 始终启用性能的主要内容,如果未能解决你的问题,请参考以下文章

C# 使用Timer控件设置时间间隔

C#定时器控件Timer

如何在 C# 中禁用/启用网络连接

C# System.Timers.Timer 类已用事件和定时器的一般注意事项

LocationManager:是不是始终启用“网络”提供程序?

如何在IE中始终启用开发人员工具