博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP的Ev教程二(watcher和watche回调等)
阅读量:7097 次
发布时间:2019-06-28

本文共 923 字,大约阅读时间需要 3 分钟。

Watchers (观察者)

观察者是为了记录某件事而创造的对象。例如,下面的代码等待STDIN成为可读的:

所有观察者构造函数会自动启动观察者。createStopped方法创建停止监视器(例如 EvIo::createStopped())

注意,当观察者对象被破坏时,观察者会自动停止。因此,应该保留由构造函数或工厂方法返回的观察者对象

还要注意的是,所有改变watcher属性(set,priority 等)的方法都会自动停止并在激活时再次启动,这意味着挂起的事件会丢失。

参见: Watcher callbacks.

Watcher callbacks (观察者回调)

所有监视器可以是活动的(等待事件)或不活动的(暂停)。只有活动的观察者才会调用它们的回调。所有回调都会被调用(至少有两个参数):watcher: 观察者,和revents: 接收时间的位掩码。

观察者回调传递给观察者构造函数(派生于EvWatcher - EvCheck::__construct() , EvChild::__construct()的类 等)。观察者回调应该匹配以下原型:

void callback ([ object $watcher = NULL [, int $revents = NULL ]] )watcher (观察者实例)The watcher instance(of a class extending EvWatcher ).revents (观察者接收的事件集)Watcher received events.

每个监视者类型都有相关的revents位掩码,因此可以对多个观察者使用相同的回调。事件掩码是在类型之后命名的,即 EvChild (or EvLoop::child() ), 设置 EV::CHILD , EvPrepare (or EvLoop::prepare() ) 设置 Ev::PREPARE , EvPeriodic (or EvLoop::periodic() ) sets Ev::PERIODIC等等,除了I/O事件之外(它可以同时设置Ev::READ 和 Ev::WRITE bits)

转载地址:http://zbeql.baihongyu.com/

你可能感兴趣的文章
Scut游戏服务器免费开源框架--快速开发(3)
查看>>
手把手教你用express搭建个人博客(一)
查看>>
C语言学习感想
查看>>
android开发分辨率适配总结
查看>>
P1217 [USACO1.5]回文质数 Prime Palindromes
查看>>
WPF中ListBox的创建和多种绑定用法
查看>>
并发包读写锁
查看>>
并发包同步工具CyclicBarrier
查看>>
MVC5-5 Razor引擎及视图结构
查看>>
死锁模拟
查看>>
可折叠tableView - 仿照通讯录
查看>>
Python-if、for、while的基础用法
查看>>
Oracle11g密码过期[转]
查看>>
类与对象的命名空间
查看>>
当你进退两难的时候,你想做出决定,抛硬币,当你第一次抛了之后,还想再一次抛的时候,你就知道这个问题的答案了。...
查看>>
php 连接数据库方法
查看>>
jsp基础学习
查看>>
项目代码风格要求
查看>>
获取元素CSS值之getComputedStyle方法熟悉
查看>>
Java核心技术卷一基础知识-第3章-Java的基本程序设计结构-读书笔记
查看>>