Недавно я писал программу на С++, которая пингует три разных веб-сайта, а затем в зависимости от прохода или сбоя она будет ждать 5 минут или 30 секунд, прежде чем она снова попытается.
В настоящее время я использую библиотеку ctime и следующую функцию для обработки моего ожидания, однако, согласно моему процессору, это неприемлемое решение.
void wait (int seconds)
{
clock_t endwait;
endwait = clock () + seconds * CLOCKS_PER_SEC;
while (clock () < endwait) {}
}
Причина, по которой это решение неприемлемо, заключается в том, что, согласно моему счетчику, программа работает от 48% до 50% моего процессора при ожидании. У меня процессор Athlon 64 x2 1.2ghz. Нет никакой возможности, чтобы моя скромная 130-линейная программа даже приблизилась к 50%.
То, что я прошу узнать, - как я могу лучше написать функцию ожидания, чтобы использовать только минимальные ресурсы? Спасибо.