2010-01-12 4 views

답변

7

표준 C에서는이 작업을 수행 할 수 없으므로 플랫폼에 특정한 API를 사용해야합니다.

널리 사용되는 POSIX 'alarm() 기능입니다.

이것은 "순수한"비동기 솔루션입니다. 물론 다른 방법으로 시간을 측정하고 처리 할 수도 있지만 여전히 플랫폼에 따라 다릅니다. sleep() (다시 POSIX)을 사용하여 차단할 수 있습니다. 루프에서 원하는 문과 결합하면 너무 효과적입니다.

3

대기 요청을 포함하는 루프를 실행하는 스레드 또는 프로세스를 만들어야합니다.

+0

스레드가 확실히 이것을하는 방법입니다. ('alarm()'에 의해 발생 된 것처럼) 신호 처리기에서 안전하게 할 수있는 것에 대한 제한은 너무 커서 막대한 노력을 기울일 가치가없는 것처럼 보입니다 스레드 설정하기. – Flexo

1

응용 프로그램이 Windows에서 실행되는 경우 SetTimer function을 사용할 수 있습니다.

0

alarm()에 대한 권장 사항은 동의하지만 정기적 처리 블록을 완료 한 후에 다른 알람()을 설정하는 것을 잊지 마십시오.

관련 문제