C# 이미지 처리: 이미지 처리 시간을 기록하는 클래스
7727 단어 화상 처리
class HiPerTimer
{
[DllImport("user32.dll")]
static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
/// <summary>
/// , ,
/// </summary>
/// <returns> </returns>
public static long GetLastInputTime()
{
LASTINPUTINFO vLastInputInfo = new LASTINPUTINFO();
vLastInputInfo.cbSize = Marshal.SizeOf(vLastInputInfo);
if (!GetLastInputInfo(ref vLastInputInfo)) return 0;
return Environment.TickCount - (long)vLastInputInfo.dwTime;
}
/// <summary>
/// win32 API QueryPerformanceCounter()
/// </summary>
/// <param name="lpPerformanceCount"></param>
/// <returns> </returns>
[DllImport("Kernel32.dll")]
private static extern bool QueryPerformanceCounter(out long lpPerformanceCount);
/// <summary>
/// win32 API QueryPerformanceFrequency()
/// </summary>
/// <param name="lpFrequency"> </param>
/// <returns> </returns>
[DllImport("Kernel32.dll")]
private static extern bool QueryPerformanceFrequency(out long lpFrequency);
private long starTime, stopTime;
private long freq;
public HiPerTimer()
{
starTime = 0;
stopTime = 0;
QueryPerformanceFrequency(out freq);
//{
//}
}
public void Start()
{
//
Thread.Sleep(0);
stopTime = 0;
QueryPerformanceCounter(out starTime);
}
public void Stop()
{
QueryPerformanceCounter(out stopTime);
}
public double DurationMs
{
get {
return (double)((stopTime - starTime) * 1000 / (double)freq);
}
}
}
두 부분 중 하나는 마지막 입력 시간 함수이고 하나는 운행 시간 함수이며 단위는 ms이다
사용 방법:
마지막 입력(마우스 또는 키보드)까지의 간격
HiPerTimer.GetLastInputTime(); // ms
,
HiPerTimer timer = new HiPerTimer();
, timer.Start();
,timer.Stop();
timer.DurationMs ms