Есть разница?
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

Принятый ответ

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