2012-10-27 38 views
1

我正在调用一个API,需要2点之间的时间间隔。在C#版本中,我使用Stopwatch并利用了ElapsedTicks方法(这显然不同于ElapsedMilliseconds)。Windows API相当于Stopwatch :: ElapsedTicks?

在Windows API中,我看到了GetTickCount()。但是,这似乎会返回经过的毫秒,而不是滴答声。我怎样才能完成与Windows API的等价物? (因为我可能会为此编写几个包装器,所以首选语言不可知论者)。

+0

Stopwatch是QueryPerformanceCounter()API的包装。但请参阅[this](http://stackoverflow.com/a/12948899/1504523)和/或[this](http://stackoverflow.com/a/11537483/1504523)回答以获取更多详细信息。由于GetTickCount依赖于平台的粒度,因此不会取得令人满意的结果。 – Arno

回答

1

秒表在内部使用QueryPerformanceCounter(如果可用)。

它通过调用QueryPerformanceFrequency来确定它是否可用 - 返回值也用于确定性能计数器的频率。

+0

出于好奇,在运行C#编译的.NET托管可执行文件的平台上,它是否*不可用? CE? – WhozCraig

+0

我可以使用GetTickCount并通过乘以处理器频率或类似的东西将它转换成刻度吗? – esac