exponenta event banner

waitfor

Приостановка выполнения кода для достижения требуемой скорости выполнения

Описание

пример

waitfor(rate) приостанавливает выполнение до тех пор, пока код не достигнет требуемой скорости выполнения. Функция учитывает время, затраченное на выполнение кода между waitfor вызовы.

numMisses = waitfor(rate) возвращает количество пропущенных итераций при выполнении кода между вызовами.

Примеры

свернуть все

Создайте объект скорости с частотой 1 Гц.

r = rateControl(1);

Запуск цикла с помощью rateControl объект внутри для управления выполнением цикла. Сбросьте объект перед выполнением цикла на таймер сброса. Печать итерации и прошедшего времени.

reset(r)
for i = 1:10
	time = r.TotalElapsedTime;
	fprintf('Iteration: %d - Time Elapsed: %f\n',i,time)
	waitfor(r);
end
Iteration: 1 - Time Elapsed: 0.002655
Iteration: 2 - Time Elapsed: 1.001775
Iteration: 3 - Time Elapsed: 2.000507
Iteration: 4 - Time Elapsed: 3.001433
Iteration: 5 - Time Elapsed: 4.001127
Iteration: 6 - Time Elapsed: 5.001328
Iteration: 7 - Time Elapsed: 6.000218
Iteration: 8 - Time Elapsed: 7.000240
Iteration: 9 - Time Elapsed: 8.000945
Iteration: 10 - Time Elapsed: 9.000661

Каждая итерация выполняется с интервалом в 1 секунду.

Входные аргументы

свернуть все

Rate объект, указанный как дескриптор. Этот объект содержит информацию о требуемой скорости и другую информацию о выполнении. Посмотрите rateControl(Панель инструментов навигации) для получения дополнительной информации.

Выходные аргументы

свернуть все

Число пропущенных выполнений задачи, возвращенных как скаляр. waitfor возвращает количество пропущенных заданий в Rate на основе LastPeriod время. Например, если желаемая частота составляет 1 Гц, а последний период составляет 3,2 секунды, numMisses возвращает значение 3.

См. также

| (Панель инструментов навигации)

Представлен в R2016a