.net 计时器有多可靠?

2024-03-29

我正在考虑在 Windows 服务中使用 System.Timers.Timer 。我想知道它们的可靠性和准确性如何。尤其:

  1. 对于它们的运行频率有任何保证吗?
  2. 当处理器或内存过载时会发生什么?在这种情况下,ElapsedEventArgs.SignalTime 是否始终准确?
  3. 如果计时器运行很长时间,考虑到系统时钟的不准确度而对系统时间进行修正时会发生什么情况?

更新:感谢迄今为止的回答。我希望对我在最初的问题中详细说明的三个问题得到更具体的答案。


什么对你来说是准确的? 普通windows定时器的精度约为100Hz。如果您想要更准确的结果,请查看 QueryPerformanceTimer(System.Diagnostics.Stopwatch 使用它)。它在短时间内非常出色且非常准确,但随着 CPU 频率的变化(电源管理),它会变得不同步。

另外,我发现系统时钟每天都会漂移几分钟,因此我们必须安装 NTP 实用程序并安排它(讽刺的是)定期运行。

基本上,我们从未在 Windows 机器上达到亚毫秒时间精度,即使尝试使用主时钟作为基准并使用 QuerperformanceTimer 作为差分计时器也是如此。从来没有工作正常过。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.net 计时器有多可靠? 的相关文章

  • Socket.*Async 方法是线程化的吗?

    我目前正在尝试找出最小化 TCP 主服务器中使用的线程数量的最佳方法 以便最大限度地提高性能 由于我最近阅读了大量 C 5 0 的新异步功能 异步并不一定意味着多线程 这可能意味着将有限状态对象分成较小的块 然后通过交替与其他操作一起进行处
  • 在 PCL 中使用 System.Net.Sockets(.Net 4.5 + 电话 8)

    我现有的 Net 库已经适用于 Net 4 5 和 Windows Phone 8 现在我想将其转换为可移植类库 突然我无法使用System Net Sockets不再了 我只检查了 Net 4 5和Windows Phone 8 未选择X
  • 如何向 addrange select 语句添加异步“await”?

    我有一个这样的函数 public async Task
  • NET/COM 互操作的 ref string[] 内存泄漏

    我最近发现一个非常奇怪的 对我来说 内存泄漏IEnumString http msdn microsoft com en us library ms693735 28VS 85 29 aspxC 使用的 COM 对象 具体来说 使用已包含先
  • .NET JIT 编译的代码缓存在哪里?

    NET 程序首先被编译为 MSIL 代码 当它被执行时 JIT编译器会将其编译为本机机器代码 我想知道 这些JIT编译的机器代码存储在哪里 它只存储在进程的地址空间中吗 但由于程序的第二次启动比第一次快得多 我认为即使在执行完成后 该本机代
  • 线程睡眠阻止我的 Swing 应用程序执行

    我的应用程序发生的事情是有道理的 但我不知道如何修复它 以下是我的应用程序功能的简要描述 计时器窗口应显示在屏幕右下角并显示实时时间 一小时后 它应该执行一些操作 我还没有决定该操作 我面临的问题是定时器 java当我刷新实时计时器的秒数时
  • 如何访问窗口?

    我正在尝试使用其句柄访问特定窗口 即System IntPtr value Getting the process of Visual Studio program var process Process GetProcessesByNam
  • 在 Java 服务器中验证 Windows 用户

    我正在开发一个用 Java 编写的服务器和一个在同一网络上的 Windows 计算机上运行的客户端 用 Net 编写的桌面应用程序 我希望进行一些基本身份验证 以便服务器可以确定运行客户端的用户的用户名 而不需要用户在客户端中重新输入其 W
  • 错误:类型 typeof Observable 上不存在属性计时器

    代码如下 import Component from angular2 core import Observable from rxjs Rx Component selector my app template Ticks every s
  • 使用 System.Security.Cryptography 将 Win32 Crypto API 调用转换为 C#

    我接到一项任务 要删除我们产品的一个 dll 并将其替换为纯 C 的 dll 旧的 DLL 是 NET 2 0 托管 C C CLI 它包装了对 Win32 本机加密 API 的调用 新的 DLL 应公开具有相同名称和方法的新对象 但应使用
  • 如何使用 json.net 在生成的 json 中“内联”属性

    我的一个类中有一个属性 我试图用 json net 序列化它 我想 内联 这意味着 我不想将该属性嵌套到具有属性名称的元素中 但其内容直接位于其父级中 这是一个例子 假设我有以下类结构 public interface ISteeringW
  • LINQ:获取表详细信息

    我正在使用 LINQPad 我想了解表的架构详细信息 我知道我是用 SQL 来做的 SELECT column name FROM information schema columns WHERE table name table name
  • 编译时和运行时转换 C#

    我想知道为什么 C 中的某些强制转换会在编译时进行检查 而在其他情况下则将责任转嫁给 CLR 如上所述 两者都是不正确的 但处理方式不同 class Base class Derived Base class Other static vo
  • 两个 C# 扩展泛型方法之间的不明确调用,其中一个 where T:class 和另一个 where T:struct

    考虑两种扩展方法 public static T MyExtension
  • WCF - 如何增加消息大小配额

    我有一个 WCF 服务 它将 1000 条记录从数据库返回给客户端 我有一个 ASP NET WCF 客户端 我在 asp net Web 应用程序项目中添加了服务引用来使用 WCF 当我运行客户端应用程序时 我收到以下消息 传入消息的最大
  • 如何将动态数据写入 MVC 3 Razor 中的页面布局?

    我有带有 Razor 引擎的 MVC 3 C 项目 将动态数据写入 Layout cshtml 的方法和最佳实践是什么 例如 也许我想在网站的右上角显示用户名 该名称来自会话 数据库或基于用户登录的任何内容 更新 我也在寻找将某些数据渲染到
  • C# 中输入按键

    我尝试了这段代码 private void textBox1 KeyPress object sender KeyPressEventArgs e if Convert ToInt32 e KeyChar 13 MessageBox Sho
  • 创建仅包含枚举的 COM 库时出现问题

    我正在做一个 COM 互操作项目 用 C 和 NET Interop 替代一些 VB 和 C ATL COM 项目 当我在 NET 中定义枚举并将它们设为 ComVisible 时 它 们会公开为 Typelib EnumType Enum
  • 是否可以在对Where 的调用中调用命名方法?

    我试图从 RedGate 的这本免费电子书中了解 Linq 的一些性能影响ftp support red gate com ebooks under the hood of net memory management part1 pdf f
  • C#“var”关键字在 VB.NET 中的等价物是什么?

    例如 我如何获得 VB NET静态类型局部变量是static赋值右侧的表达式的类型 像这样 Dim http msdn microsoft com en us library 7ee5a7s1 aspx我的变量 3 你还需要 选项推断 ht

随机推荐