|
1/1000 초 마다 이벤트가 걸린다면 그안에서 처리되는 루틴이 1/1000을 만약 넘게 된다면(어떻게
알지 모르지만?) 그럼 어떻게 되버리는건가요?
1/1000을 넘지 않는지 알아볼 방법은 있는 건인지 궁금합니다.
유영인 [Chris] 님이 쓰신 글 :
: 보통의 타이머는 Tick이 0.58(가물가물 -_-+) 정도기 때문에, 정확한 시간을 체크하기 어렵습니다. 타이머가 1/1000 초로 Interval을 잡을 수 있다고 해도 실제로 정확한 연산이 나오지 않죠. 하지만 윈도우 미디어 플레이어가 사용하는 DLL을 이용하면 1/1000초의 정확한 계산을 할 수 있습니다. 이것이 바로 멀티미디어 타이머고요, 지금은 API화 되어 있습니다.
:
: int A = timeGetTime();
:
: 이런식으로 호출하시면, A에 현재의 시간이 밀리세컨드까지 정수화 되어 표기 됩니다. 이 말씀은 1000 단위가 1초가 된다는 뜻입니다. 보통의 Sleep 명령은 Sleep(7) 이런식으로 지연시킬 수 없습니다. 그렇기 때문에 아래와 같은 루틴을 사용하는 것이죠.
:
: 사용 방법은 ..
:
: #include <mmsystem.h>
:
: 을 추가시켜 주시면 일반 함수처럼 사용하실 수 있습니다. mmsystem.h 에는 timeSetEvent 라는 함수도 포함이 되어있는데, 이 함수를 이용하시면 1/1000초라는 Interval을 가질 수 있는 타이머를 만드실 수 있습니다.
:
|