В программировании на C для Windows существует несколько методов введения задержек в код. Вот некоторые из часто используемых методов:
- Функция сна. Функция сна — это функция Windows API, которая приостанавливает выполнение программы на определенное количество миллисекунд. Это позволяет вам ввести задержку в ваш код, вызвав функцию с желаемым значением задержки.
Пример:
#include <windows.h>
int main() {
// Delay for 1 second (1000 milliseconds)
Sleep(1000);
return 0;
}
- Цикл ожидания занятости: вы можете создать цикл, который периодически не выполняет никакой полезной работы, по сути тратя циклы ЦП, в течение определенной продолжительности, чтобы ввести задержку.
Пример:
#include <time.h>
void delay(int milliseconds) {
clock_t start_time = clock();
while ((clock() - start_time) < milliseconds);
}
int main() {
// Delay for 1 second (1000 milliseconds)
delay(1000);
return 0;
}
- Задержка по времени: вы можете использовать заголовочный файл
time.h, чтобы ввести задержку, основанную на текущем системном времени. Этот метод позволяет более точно контролировать время.
Пример:
#include <time.h>
void delay(int milliseconds) {
time_t start_time = time(NULL);
while ((time(NULL) - start_time) * 1000 < milliseconds);
}
int main() {
// Delay for 1 second (1000 milliseconds)
delay(1000);
return 0;
}
- Мультимедийный таймер. Мультимедийный таймер, предоставляемый Windows API, обеспечивает синхронизацию с высоким разрешением и точные задержки. Вы можете использовать функцию
timeSetEvent, чтобы настроить обратный вызов таймера для желаемой задержки.
Пример:
#include <windows.h>
#include <mmsystem.h>
void CALLBACK TimerCallback(UINT uTimerID, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2) {
// Timer callback function
}
int main() {
// Delay for 1 second (1000 milliseconds) using multimedia timer
timeSetEvent(1000, 0, TimerCallback, 0, TIME_ONESHOT);
Sleep(2000); // Keep the program running to allow timer execution
return 0;
}