2012-10-27 35 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