2012-10-27 2 views
1

2 포인트 사이에 경과 된 틱이 필요한 API를 호출 중입니다. C# 버전에서는 Stopwatch을 사용하고 ElapsedTicks 메서드를 사용합니다 (이것은 분명히 ElapsedMilliseconds과 다를 것 같습니다).Stopwatch :: ElapsedTicks와 동일한 Windows API?

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