【问题标题】:High precision timing for High-Def mouse events高清鼠标事件的高精度计时
【发布时间】:2012-07-31 00:26:48
【问题描述】:

我在 Windows 中使用高清鼠标 (logitech g500),我希望获得原始鼠标事件的低延迟时间戳。我使用时间戳来计算鼠标移动之间的“暂停”,所以重要的是时间戳的相对精度。

我正在使用 RAW INPUT API 来监控鼠标事件。消息中不包含计时信息,因此我在 Windows 中使用了秒表。触发事件处理程序时获取“时间戳”的诊断 - 即鼠标事件处理程序中的第一个操作是读取秒表以了解已流逝的滴答声。

由于在这种情况下我没有任何基本事实可以处理,是否有人认为这种方法存在直接和明显的缺陷?或者更好的是,如果您在任何 cmets 之前使用过 Stopwatch 来研究延迟及其在秒表的不同读取中的可变性?

【问题讨论】:

  • 只有真正衡量 UI 线程对 WM_INPUT 消息的响应程度,您将面临严重风险。这与您的线程在重新进入消息循环之前所做的事情相关。而且变化很大。

标签: c# windows mouseevent stopwatch raw-input


【解决方案1】:

Stopwatch 类使用 CPU 上的高性能计时器(如果可用),因此它是您将获得的最高分辨率计时器。

您可以使用IsHighPrecision 属性检查以确保您拥有高精度实例。

【讨论】:

    猜你喜欢
    • 2013-11-07
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    • 2013-08-03
    • 2023-03-25
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多