【发布时间】:2012-03-20 15:12:26
【问题描述】:
我需要替换 Stopwatch 以避免对其属性使用 getter。我将使用 QueryPerformanceCounter 来实现它。 我只需要滴答声没有别的。
任何人都可以提供代码片段,以获得正确的刻度(毫秒的 1/10000)或任何其他小但稳定的值。
请注意,我的服务器将时钟粒度设置为 0.5 毫秒(不确定它是否会影响 QueryPerformanceCounter),但仅供您了解。
另请注意 - 我不需要计时器。我只需要测量部分代码之间的时间间隔。
编辑: 为避免混淆,我真的很想知道 QueryPerformanceCounter(out long lpPerformanceCount); 中的 lpPerformanceCount 是什么
【问题讨论】:
-
如果您要测量部分代码之间的时间间隔,这与计时器有何不同?无论哪种方式,您都可以使用 interop 自己调用 Kernel32.dll 的
QueryPerformanceCounter。 -
您能否解释一下为什么要这样做“以避免在其属性中使用吸气剂”并没有太多理由。 QueryPerformanceCounter 的问题在于它以计数为单位返回它的值,并且每秒计数的数量因架构而异,并且可以使用 QueryPerformanceFrequency 找到。使用秒表,您可以获得实际时间单位的价值。
-
@BenRobinson - 这对我来说很有意义,否则我不会问。
-
@Bobb 我很长一段时间以来一直是堆栈溢出的活跃成员,我不得不说,仅仅因为有人提出问题并不意味着它有意义,实际上是正确的问题或基于基于有效的假设。我们不是你的主题,你的推理的一些解释可以帮助你解决你的实际问题(你没有解释),而不是仅仅回答可能是或可能不是错误的问题。跨度>
-
这是一个开放社区。我有疑问,这与您在这里待了一段时间无关,您认为这是对还是错。你没有答案?请继续前进。