Таймер
Класс Timer представляет таймер, который срабатывает по истечении срока действия, а затем срабатывает с интервалом. Когда таймер срабатывает, он вызывает метод apply объекта TimerNotify, который был передан ему при его создании.
Следующий пример ожидает 5 секунд, а затем срабатывает каждые 2 секунды, и когда он срабатывает, объект TimerNotify выводит, сколько раз он был вызван:
use "time"
actor Main
new create(env: Env) =>
let timers = Timers
let timer = Timer(Notify(env), 5_000_000_000, 2_000_000_000)
timers(consume timer)
class Notify is TimerNotify
let _env: Env
var _counter: U32 = 0
new iso create(env: Env) =>
_env = env
fun ref apply(timer: Timer, count: U64): Bool =>
_env.out.print(_counter.string())
_counter = _counter + 1
true
class ref Timer
Конструкторы
create
Создает новый таймер. Время истечения срока действия должно быть количеством наносекунд до первого истечения срока действия. Интервал также должен быть в наносекундах.
new iso create( notify: TimerNotify iso, expiration: U64 val, interval: U64 val = 0) : Timer iso^
Параметры
- notify: TimerNotify iso
- expiration: U64 val
- interval: U64 val = 0
Возвращаемые значения
- Timer iso^
abs
Создает новый таймер с абсолютным временем истечения срока действия вместо относительного времени. Время истечения срока действия — это время системы, откалиброванное по часам.
new ref abs( notify: TimerNotify ref, expiration: (I64 val , I64 val), interval: U64 val = 0) : Timer ref^
Параметры
- notify: TimerNotify ref
- expiration: (I64 val , I64 val)
- interval: U64 val = 0
Возвращаемые значения
- Timer ref^
© 2016-2020, The Pony Developers
© 2014-2015, Causality Ltd.
Licensed under the BSD 2-Clause License.
https://stdlib.ponylang.io/time-Timer