C \ # 의 고성능 타이머 (번역)
using System;
using System.Runtime.InteropServices;
using System.ComponentModel;
using System.Threading;
namespace Win32
{
internal class HiPerfTimer
{
[DllImport("Kernel32.dll")]
private static extern bool QueryPerformanceCounter(
out long lpPerformanceCount);
[DllImport("Kernel32.dll")]
private static extern bool QueryPerformanceFrequency(
out long lpFrequency);
private long startTime, stopTime;
private long freq;
//
public HiPerfTimer()
{
startTime = 0;
stopTime = 0;
if (QueryPerformanceFrequency(out freq) == false)
{
//
throw new Win32Exception();
}
}
//
public void Start()
{
//
Thread.Sleep(0);
QueryPerformanceCounter(out startTime);
}
//
public void Stop()
{
QueryPerformanceCounter(out stopTime);
}
// ( : )
public double Duration
{
get
{
return (double)(stopTime - startTime) / (double) freq;
}
}
}
}
이런 종 류 를 사용 하 는 것 은 매우 간단 하 다.HiPerfTimer 의 인 스 턴 스 를 만 든 다음 Start () 를 호출 하여 시간 을 재 고 Stop () 은 시간 을 멈 춰 야 합 니 다.지나 간 시간 을 얻 으 려 면 Duration () 함 수 를 호출 하면 됩 니 다.아래 의 예 를 참고 하 시 오.
HiPerfTimer pt = new HiPerfTimer(); // HiPerfTimer
pt.Start(); //
Console.WriteLine("Test
"); //
pt.Stop(); //
Console.WriteLine("Duration: {0} sec
",
pt.Duration); //
테스트 결 과 는 여러분 이 직접 해 보 셨 어 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Exception in thread main java.lang. NoClassDefFoundError 오류 해결 방법즉,/home/hadoop/jarfile) 시스템은 Hello World 패키지 아래의class라는 클래스 파일을 실행하고 있다고 오인하여 시스템의 CLASSPATH 아래 (일반적으로 현재 디렉터리를 포함) Hell...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.