首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

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

发布于 2025-04-25 18:29:20
0
21

函数名称: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(),事件处理完后会保持停止状态并从事件循环中移除。
评论
一个月内的热帖推荐
啊龙
Lv.1普通用户

9545

帖子

31

小组

3242

积分

赞助商广告
站长交流