2025年4月13日 星期日 农历 本月19日谷雨
查询

EvPeriodic::createStopped()函数—用法及示例

「 创建一个停止状态的周期事件 」


函数名称:EvPeriodic::createStopped()

函数描述:创建一个停止状态的周期事件

适用版本:ev >= 1.0.0

用法示例:

<?php
$base = new EvLoop();
$periodic = EvPeriodic::createStopped(2, 0, function ($watcher) use (&$base) {
    echo "Periodic event\n";

    // 如果执行完所有操作后,仍想保持事件处于停止状态,
    // 可以使用 $watcher->stop() 方法
    $watcher->stop();

    // 从事件循环中移除周期事件,可以使用 $base->clear($watcher) 方法
    $base->clear($watcher);
});

// 启动周期事件,可以使用 $periodic->start() 方法
$periodic->start();

$base->loop();
?>

说明:

  • EvPeriodic::createStopped() 函数创建一个停止状态的周期事件,需要指定周期的时间间隔和延迟。
  • 第一个参数(2)是周期事件的时间间隔,表示事件每隔多久重复触发一次,单位是秒。
  • 第二个参数(0)是事件延迟时间,表示事件第一次触发前需要等待的时间,单位是秒。
  • 第三个参数是一个回调函数,当事件触发时会执行该回调函数。可以在回调函数中添加自己的逻辑处理。
  • 使用 $watcher->stop() 可以手动停止事件,并保持事件处于停止状态。
  • 使用 $base->clear($watcher) 可以从事件循环中移除周期事件。
  • 使用 $periodic->start() 启动周期事件,事件会开始触发。
  • 使用 $base->loop() 开启事件循环,让事件持续触发。
  • 在上面的示例中,周期事件每隔2秒触发一次,回调函数会输出 "Periodic event" 字符串。事件会在第一次触发前等待0秒。在回调函数中,添加了 $watcher->stop(),事件处理完后会保持停止状态并从事件循环中移除。
补充纠错
上一个函数: EvPeriodic::again()函数
下一个函数: EvPeriodic::set()函数
热门PHP函数