牛牛在线工具

EventBase::dispatch()

收录 8868 个 PHP 函数,含用途说明与用法示例。

EventBase::dispatch()

立即分派(dispatch)所有已经被注册的事件,并在当前线程中执行它们的回调函数

函数名:EventBase::dispatch() 适用版本:EventBase (PECL event >= 1.2.6-beta) 用法:EventBase::dispatch() 函数用于立即分派(dispatch)所有已经被注册的事件,并在当前线程中执行它们的回调函数。该函数将对所有的事件进行遍历,并按照其优先级执行回调函数。 示例: // 创建一个 EventBase 对象 $base = new EventBase(); // 创建一个定时事件 $timerEvent = Event::timer($base, function() { echo "定时事件触发\n"; }); // 设置定时事件触发的时间间隔为1秒 $timerEvent->add(1); // 注册一个信号事件,当接收到 SIGINT 信号时触发 $signalEvent = Event::signal($base, SIGINT, function() use ($base) { echo "接收到 SIGINT 信号\n"; // 停止事件循环 $base->stop(); }); // 将所有事件分派执行 $base->dispatch(); // 清除事件资源 $timerEvent->free(); $signalEvent->free(); 注意:调用 EventBase::dispatch() 会阻塞当前线程,直到事件循环结束或者被调用 EventBase::stop() 函数停止。在进行事件分派前,必须通过调用 EventBase::loop() 或 EventBase::loopExit() 函数之一,开启事件循环,否则事件将不被执行。事件循环会循环执行事件,直到被显式停止。