查詢

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函式
分享連結