c# - 哪些定时器依赖于系统时间?

标签 c# .net datetime timer

我还没有测试过这个。我希望有人已经知道答案,所以我不必编写测试应用程序,否则我会的。 :)

通常当我想比较时间时,我只是存储DateTime.Now 并在以后比较它。我相信当用户在两者之间的某个位置更改用户的系​​统时间时,这会产生错误的结果。

这让我想知道计时器的行为是否相同。哪些 .NET 计时器依赖于设置的系统时间?考虑启动一个需要在一小时内流逝的计时器。将系统时间调快一小时会触发吗?

我从来没有真正关心过这种可能的行为,但在某些情况下它可能很重要。哪些计时器在这种情况下是安全的,哪些绝对不是?

最佳答案

我正在尝试解决类似的问题。我原来使用 System.Diagnostic.StopWatch替换所有 DateTime.Now . StopWatch将使用高频时钟(如果存在)。因此,它更准确并且不受系统时钟变化的影响。但是,如果不存在高频时钟,它将再次使用系统时钟。

根据我的测试,我所有的机器都有高频时钟,包括VM中的机器。

关于定时器,据我所知,它不依赖于系统时钟。但是,您并不真的想使用 Timer 来跟踪时间,因为 Timer 回调事件可能会被其他一些事件延迟。

关于c# - 哪些定时器依赖于系统时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5128027/

相关文章:

c# - JSON.NET 不会反序列化为私有(private)属性

c# - 适用于长时间运行的计划作业的 Azure 资源类型

c# - 您可以禁用 ServiceStack AutoQuery 的计数(总计)吗?

c# - 串口读取结果有response还有我给的command,怎么解决?

c# - 使用特定的模式来实现接口(interface)

将十进制整数转换为六十进制数

php - 在 PHP 中将一种日期格式转换为另一种日期格式

mysql - 在选择 PDO 中过滤日期时间以显示现在的结果

c# - 如何在 Flutter 中使用外部 DLL(Dot Net)?

c# - 禁用父面板,同时保持子面板启用