Как запустить что-то каждые t секунд в C? - PullRequest
6 голосов
/ 12 января 2010

В C я хочу, чтобы блок операторов выполнялся многократно каждые t секунд. Как мне это сделать?

Ответы [ 4 ]

7 голосов
/ 12 января 2010

Этого нельзя сделать в стандартном C, вам нужно использовать какой-то специфичный для платформы API.

Одним из популярных вариантов является функция POSIX '<a href="http://www.opengroup.org/onlinepubs/000095399/functions/alarm.html" rel="nofollow noreferrer">alarm()</a>.

Это «чистое» асинхронное решение. Конечно, можно измерять и обрабатывать время другими способами, но они все еще зависят от платформы. Вы можете использовать <a href="http://www.opengroup.org/onlinepubs/000095399/functions/sleep.html" rel="nofollow noreferrer">sleep()</a> (снова POSIX), чтобы просто заблокировать. Если вы объедините это с желаемыми операторами в цикле, это тоже должно сработать.

3 голосов
/ 12 января 2010

Вам потребуется создать поток или процесс, который запускает цикл, содержащий запрос ожидания.

1 голос
/ 12 января 2010

Если ваше приложение работает в Windows, вместо этого вы можете использовать функцию SetTimer .

0 голосов
/ 13 января 2010

Согласитесь с рекомендацией размотки будильника (), но не забудьте установить еще один будильник () после завершения блока периодической обработки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...