Если вы хотите очень предсказуемые короткие задержки, вы можете написать небольшую утилиту командной строки, которая вызывает nanosleep.
#include <stdio.h>
#include <time.h>
#include <stdint.h>
#include <sys/time.h>
int main(int argc, char *argv[]) {
struct timespec ts;
// We want to sleep for 40ms
ts.tv_sec = 0;
ts.tv_nsec = 40L * 1000000L; // 1ms = 1 million nanoseconds
nanosleep(&ts, NULL);
return 0;
}
Конечно, утилита может быть сделана намного более гибкой, получив задержку из командной строки.
EDIT: как отмечают комментаторы, nanosleep недоступен в стандартном компиляторе MS. В качестве альтернативы можно использовать sleep.
+1: Но непредсказуемой частью является поведение загрузки/запуска – jeb
Да, но гораздо более предсказуемым, чем примеры. Тем не менее, я предполагаю, что вопрос касается MS, а nanosleep - POSIX! Во всяком случае, это пакетный вопрос, а не программирование! –
@jeb Я согласен, но на самом деле я не вижу возможности избавиться от этой части неопределенности, вы можете просто попытаться сделать утилиту настолько крошечной, насколько это возможно, чтобы максимально сократить время загрузки, но это все. – fvu