|
타이머는..
1. 타이머는 원래 정확히 딱 떨어지지 않습니다.
2. interval을 1로 한다고 해서 1msec비슷하게 이벤트가 발생하지도 않습니다.
최소 해상도가 20msec 정도 쯤 됩니다.
3. 현재 windows에 수십개이상의 process(exe)가 시간을 쪼개서 같은 cpu를 사용하고 있습니다.
os에서 알아서 잘 관리해주지만..
정확히 딱 떨어지려면.. 님의 process혼자만 돌아야 겠죠
4. 현재 님의 어플은 복잡하게 되어있지 않는것 같습니다만..
프로그램이 다른일한다고 바쁜경우에도 timer 이벤트를 제대로 못받습니다.
5. 기타..
즉 여러가지 이유로 1초 딱 떨어지게 하기가 어렵습니다.
결론적으로
* timer를 사용할때는 대충 설정한 시간 비슷하게 나온다하고 생각하시고 프로그램해야합니다.
* timer의 이벤트를 count해서 시간 계산하는것은
말씀하신대로 한루 이틀 쌓이면 계속 오차가 커집니다.
그럼..
타이머 님이 쓰신 글 :
: 안녕하세요~~ 다름이 아니라...
:
: 이해가 안가는 부분이 있어서 질문드립니다 ㅠㅠ
:
: OnTimer를 이용해서 메모장에 그냥 현재 시간을 출력하는 것인데요..
:
: OnTimer에서 하는 일이라곤 그냥 메모장에 현재시간을 출력하는 것 밖에 없습니다..
:
: 그런데 문제는 Timer에서 기본 설정되어있는 Interval를 1초.. 즉 1000으로 설정 했는데요..
:
: 출력되는 시간은 정확히 1초가 아닌 1.020초 정도 0.010 ~ 0.020초 정도 딜레이 되서 출력된다는 것입니다.
:
: 0.020초가 점차 쌓여서 결국에는 0.990초 뒤에는 1초가아닌 2초가 출력되는 현상이 나타나는데요...
:
: 왜 계속 0.020초가 딜레이되서 출력되는 건가요?? 컴퓨터가 느려서 그런 것도 아닌데..
:
: Interval를 1초로 설정 했으면 1초만에 실행되야 하는 것 아닌가요???
:
: 이러면 어떻게 믿고;;; Timer를 사용해야 할지...
:
: 고수분들에 설명 부탁드립니다 ^^
:
: 참고로 이해하기 쉽게 이미지도 올렸어요~~~ 참고 바랍니다 ^^
|