Stopwatch란?
- Stopwatch 인스턴스는 한 한 간격에 대해 경과 된 시간을 측정하거나 여러 간격에 걸쳐 지난 총시간을 측정할 수 있습니다.
- Start와 Stop의 경과 시간을 Elapsed 알 수 있습니다.
- 우리가 일반적으로 사용하는 스톱워치를 사용하듯이 사용하실 수 있습니다.
Stopwatch 사용 방법
public void Run()
{
//Stopwatch 선언
Stopwatch sw = new Stopwatch();
//Stopwatch 시작
sw.Start();
// 1초간 Delay
Console.WriteLine($"시작후 1초 Delay");
Thread.Sleep(1000);
//Elapsed로 중간중간의 경과시간을 확인할 수 있습니다.
TimeSpan ts = sw.Elapsed;
Console.WriteLine($"경과 시간 {ts.TotalMilliseconds}ms");
// 3초간 Delay
Console.WriteLine($"추가 3초 Delay");
Thread.Sleep(3000);
if (sw.IsRunning)
{
//Stopwatch 정지
sw.Stop();
TimeSpan tSpan = sw.Elapsed;
Console.WriteLine($"경과 시간 {tSpan.TotalMilliseconds}ms");
Console.WriteLine($"경과 시간 {sw.ElapsedMilliseconds}ms");
//만약 주파수를 알고, 그 경과시간동안 발생한 틱수를 알고 있다면?
//
long frequency = Stopwatch.Frequency;
long tickCount = sw.ElapsedTicks;
Console.WriteLine($"ticl {frequency} , Frequency {frequency}");
Console.WriteLine($"경과 시간 {tickCount / frequency}s");
}
}
결과
시작후 1초 Delay
경과 시간 1044.6594ms
추가 3초 Delay
경과 시간 4081.1771ms
경과 시간 4081ms
ticl 10000000 , Frequency 10000000
경과 시간 4s
- 개인적으로 ElapsedMilliseconds 가 가장 간편한것 같습니다.
참고
MDSN - Stopwatch