|
타이머의 interval은 신뢰할 만한 값은 아닙니다.
타이머는 메세지 기반으로 운용된다고 알고 있습니다. 때문에, 부하가 과도하게 걸릴 경우나 interval이 극히 작을 경우(수 ms 정도 일 경우)에는 정확한 interval을 보장하지 못합니다. 때문에, 몇몇 이러한 interval에 대한 매우 높은 정확도를 요구하는 작업을 위해서 위도 커널 자체를 보강한 real time os나 기타 하드웨어 장비등이 별도로 제품화되어 나오기도 합니다.
또, direct show 등에서 사용되는 멀티미디어 타이머 같은 걸 사용하거나, 쓰레드에 가장 높은 우선도를 주고 gettickcount 등을 사용해 좀 더 정확한 간격으로 원하는 작업을 구현하기도 하니 참고하시기 바랍니다.
그러나, 말씀하신 작업 상에서는 interval의 부정확성이 극히 높은 걸로 봐서는 개발하신 소스 자체의 문제라고 생각됩니다. timer의 enable 속성을 true, false 하는 부분을 다시 한 번 확인해보시는 게 좋을 듯 하다는 생각이 듭니다.
도움 되시기를 바라겠습니다.
ms 단위로 확인해보시면 아시겠지만, 보
허접 님이 쓰신 글 :
: 안녕하세요. 허접입니다.
: 오랜만에 질문을 드리네요.
: 프로그램에서 타이머를 사용하고 있습니다.
: 마우스 커서가 5초간 움직임이 없으면, 해당 위치의 좌표를 나타내 주고 있습니다.
: 그런데, 타이머가 자기 기분대로 동작을 하네요.
: 어쩔땐 3초만에, 어쩔땐 1초만에 좌표값을 찍어줍니다.
: 왜 그런건가요? 정확하게 5초에 동작을 하지 않는 이유가 궁금합니다.
: 그리고 해결책은 없나요?
: 도와주세요~~
|