【发布时间】:2015-03-17 08:06:16
【问题描述】:
我正在尝试构建一个通常不必具有超级性能的应用程序,除了键盘按下(或外部控制器按钮按下)的时间戳。我希望时间戳尽可能精确,最好是 +/- 5ms。这是为了科学应用。以最小延迟实现这一目标的最佳编程范例是什么?以下哪一项更可取?
(a) 创建一个以更高优先级运行的工作线程并循环查看是否按下了某个键。使用Sleep(x),其中x 小于5。
(b) 创建一个键盘钩子,它有一个异步回调。
(c) 另一种选择。
除了答案之外,任何代码(或示例链接)都将不胜感激,因为我是一个相当新的开发人员。
编辑:命名法。应该更加小心。通过时间戳,我的意思是一般的时间,不一定是完整的日月年时分秒毫秒。我从一开始就计划使用 StopWatch 类,因为我需要的只是程序中事件开始和按下按钮之间的时间。抱歉,如果不清楚。
【问题讨论】:
-
您是在寻找真正的时间戳(一个时间点),还是只是在次按键之间的时间?
-
我正在寻找事件开始和按键之间的区别。我计划使用秒表类。不确定是否推荐。
-
this question 已经很好地介绍了。非常怀疑 Stopwatch 是否会为您做任何事情,如果确实如此,那么您没有很好地解释您的要求。
标签: c# xna keyboard keyboard-events low-latency