gpt4 book ai didi

vb.net - ManualResetEvent.WaitOne(1) 等待超过 1 毫秒?

转载 作者:行者123 更新时间:2023-12-02 06:57:57 31 4
gpt4 key购买 nike

我正在使用 HID 设备获取数据。下面的代码是我的计时机制的粗略轮廓。

Dim CANTimer as New System.Diagnostics.Stopwatch
Dim resetEvent as New Threading.ManualResetEvent(False)
....

CANTimer.Start()
ResetEvent.WaitOne(1)
CANTimer.Stop()

对此进行计时,我通常会得到 3 毫秒的时间,这是我期望 HID 传输所花费的延迟......并且大约每第 4 次或第 5 次迭代将花费 20 毫秒。无论我将超时设置为多少(以毫秒为单位),这些数字都不会真正改变。

为什么ResetEvent不会在一毫秒超时?

并且...更接近金属,为什么 HID 传输似乎需要 3ms 或 20ms(从来没有 15ms 等)...当传输需要 20ms 时会发生什么?

最佳答案

默认情况下,Windows 上的计时器分辨率仅为 15.625 毫秒。您可以通过 pinvoking timeBeginPeriod(1) 将其提高到毫秒,但这会对系统范围产生影响。务必将超时视为真正的超时,而不是计算毫秒的方法。

关于vb.net - ManualResetEvent.WaitOne(1) 等待超过 1 毫秒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7405076/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com