Spec-Zone.ru › Pony

Таймер

[Source]

Класс 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

[Source]

Создает новый таймер. Время истечения срока действия должно быть количеством наносекунд до первого истечения срока действия. Интервал также должен быть в наносекундах.

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

[Source]

Создает новый таймер с абсолютным временем истечения срока действия вместо относительного времени. Время истечения срока действия — это время системы, откалиброванное по часам.

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API