This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
api:event:zh [2023/09/24 10:41] hfsr [General purpose event handler] translate to zh_cn |
api:event:zh [2023/10/12 17:25] hfsr [概述] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Event(事件) API ====== | ====== Event(事件) API ====== | ||
- | Event(事件) API为用户提供了一套基本的事件处理系统,可利用其编写响应操作系统或其他程序/运行库传递的[[component:signals|signals]]代码。 | + | Event(事件) API为用户提供了一套基本的事件处理系统,可利用其编写代码以响应操作系统或其他程序/运行库传递的[[component:signals|信号]]。 |
例如,你可以利用此API捕获按下的按键、在外接显示器连接到电脑或断开连接时进行响应,或是处理传入的网络信息。 | 例如,你可以利用此API捕获按下的按键、在外接显示器连接到电脑或断开连接时进行响应,或是处理传入的网络信息。 | ||
Line 7: | Line 7: | ||
event API主要有两种用法: | event API主要有两种用法: | ||
- | - 让程序在后台运行时能够对事件作出响应(驱动模式)。 | + | - 让程序在后台运行时对事件作出响应(驱动模式)。 |
- 让程序在作为前台程序执行时处理事件(优先模式)。 | - 让程序在作为前台程序执行时处理事件(优先模式)。 | ||
Line 13: | Line 13: | ||
而在优先模式下,你无需在程序中注册事件,可以直接使用`events.pull()`函数进行处理。 | 而在优先模式下,你无需在程序中注册事件,可以直接使用`events.pull()`函数进行处理。 | ||
- | //注意://虽然从技术层面上讲可以同时使用两种工作模式,但不推荐这样做。为了保证所有进行了注册的函数都能接收到事件,事件的一次触发只有在所有函数都被调用后才算结束。因此如果你将处理函数(handler)进行了注册,又执行了拉取(pull)操作,那么同一个事件会被响应两次。 | + | //注意://虽然从技术层面上讲可以同时使用两种工作模式,但不推荐这样做。为了保证所有已注册的函数都能接收到事件,事件的一次触发只有在所有函数都被调用后才算结束。因此如果你将处理函数(handler)进行了注册,又执行了拉取(pull)操作,那么同一个事件会被响应两次。 |
===== 函数 ===== | ===== 函数 ===== | ||