生态桌面应用

应用和事件循环

创建应用、监听生命周期、使用计时器并安全退出事件循环。

每个进程通常创建一个应用,由它持有窗口、字体、图片、计时器和事件队列。运行必须在 VM 所有者线程调用,且同一应用不能并发运行两次。

「包:言界」 界面;

 应用  界面.应用「事件循环示例」);
 窗口  应用.窗口({「标题」「生命周期」「宽」560「高」320});
 状态  窗口.({「内边距」20}).文字「等待事件」);

 一秒后(所事件) 
    状态.内容「计时器已触发」);


 关闭(所事件) 
    应用.退出();


应用.定时器1000,一秒后);
窗口.关闭时(关闭);
窗口.显示();
应用.运行();

定时器(毫秒,重复,回调)最小间隔为 10 毫秒。回调不是操作系统线程回调,而是和窗口事件一样进入有界宿主队列,再由事件泵在言序线程执行。周期动画应使用单调时间计算当前值,不要假设每次回调间隔完全相等。

应用级监听(事件类型,回调)可处理启动、激活、失活、退出请求、系统主题和显示器变化。窗口未处理的退出请求会结束循环;显式调用退出只请求停止,运行返回后再由关闭释放应用根资源。

事件队列最多保留 4096 项。指针移动、窗口缩放和重绘会保留最新状态,滚轮在同一批次累积,因此繁忙时不会因每个物理事件都跨 ABI 而无限增长。