Есть разница?
function OnTimer takes nothing returns nothing
	call BJDebugMsg("")
endfunction

function OnInit takes nothing returns nothing
	call TimerStart(t, 0.01, true, function OnTimer)
endfunction
и
function OnTimer takes nothing returns nothing
	call BJDebugMsg("")
	call TimerStart(t, 0.01, false, function OnTimer)
endfunction

function OnInit takes nothing returns nothing
	call TimerStart(t, 0.01, false, function OnTimer)
endfunction

Во втором случае период таймера будет зависеть от скорости выполнения кода выше и остановится от ошибки (обрыва потока)
`
ОЖИДАНИЕ РЕКЛАМЫ...
15
С точки зрения исполнения почти никакой.
С точки зрения оптимизации, это один дополнительный вызов функции на каждый тик таймера.
15
Proshel_Doty, представь себе некий яд, наносящий урон каждую 1 секунду. Для этого нужен периодический таймер. Но вот проблема, ты хочешь чтобы яд наносил урон, помимо прочего, еще и в момент наложения. Можно было бы написать избыточный код, производящий нанесение урона перед запуском таймера, а можно просто запустить сам таймер с интервалом 0 секунд, а затем перезапускать его изнутри как в твоем втором примере..
26
Разница лишь в том, что во втором случае конструкция может предполагать динамическое переопрелеление периода.
38
Во втором случае период таймера будет зависеть от скорости выполнения кода выше и остановится от ошибки (обрыва потока)
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.