Arpiel/SIMPLE-TIMER: Simple Timer Project using Windows Forms. (github.com)
프로젝트와 실행 가능한 바이너리는 위에 링크에 올려져 있습니다.
.NET 오랬만에 공부하면서 Form로 간단히 타이머 프로젝트를 하나 만들어 봤습니다. 일단 기능상 별 문제는 없는것 같다고 판단은 되는데 좀 미묘한 문제점 하나를 발견했습니다.
현재 구조는 타이머 객체를 이용해서 Timer1은 1초마다 현재시각을 갱신해주고 Timer2는 100ms 마다 동작하면서 시간 측정용 clock 객체에 100ms씩 더하는 구조로 되어있습니다.
그런데 막상 구현해 보고 사용해 보니까 실제로 측정되는 타이머가 현재 시각보다 몃초씩 느려지는 것 같은 현상이 있는 것 같습니다. 구체적으로 측정해 본 것은 아닙니다만 측정 시간이 조금 길어지면 눈치 챌 수 있을 정도로요.
아마 Timer 틱마다 처리해주는 명령어 때문에 100ms 보다 조금씩 느려지는 것 같은데… 제가 C# 개발이 본업이 아니라 이걸 제대로 측정할 방법이 잘 모르겟습니다. 혹시 VS에 이와 관련되어 오차를 측정할수 있을만한 도구 같은게 있을까요?
그리고 프로그램 전체적으로 개선할만한 점이 있다면 조언해 주실수 있는 부분이 있을까요.