【问题标题】:GetLastInputInfo() returns a number of milliseconds rather than ticksGetLastInputInfo() 返回毫秒数而不是滴答声
【发布时间】:2017-12-16 11:15:52
【问题描述】:

我正在从 User32.dll 导入 GetLastInputInfo()。在GetLastInputInfo() definition 中,它声明它使用滴答计数。但是,在实践中,它返回毫秒计数。这可以通过简单的乘法来纠正,因为我不需要那种级别的精度,但我想知道这是否总是如此,或者它是否会变化。

编辑:

最初可能没有详细说明。如下所述,在导入函数的上下文中,一个刻度是一毫秒。混乱来自我将它与 Datetime.Now.Ticks 一起使用的事实。在这种情况下,一个滴答声是 100 纳秒。

【问题讨论】:

  • 根据下面的答案,在 Win32 API 中刻度是毫秒。如果您想要更接近 CPU 周期的东西,您可能正在寻找 QueryPerformanceCounter API。

标签: c# datetime user32


【解决方案1】:

滴答声是毫秒。

来自documentation for GetLastInputInfo:

plii [out] - 指向LASTINPUTINFO 结构的指针,该结构接收最后输入事件的时间。

来自documentation for LASTINPUTINFO:

有关滴答计数的详细信息,请参阅 GetTickCount。

来自documentation for GetTickCount:

返回值是系统启动后经过的毫秒数。

【讨论】:

  • 感谢您的澄清。我原以为一个刻度线的定义是一样的——这显然是一个错误的假设。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-07
  • 1970-01-01
  • 1970-01-01
  • 2012-05-03
  • 2021-08-20
  • 1970-01-01
相关资源
最近更新 更多