易语言处理事件() 如何用

这个函数一般是用在延时之后,如果不用的话程序很容易形成假死,加了处理事件() 就可以避免这种情况,处理事件() 是暂时把系统的操作权让出给其他的程序 这样可以避免程序假死。

暂时转让控制权,以便让 Windows 操作系统有机会处理其它的如用户键盘或鼠标输入等事件。直到操作系统处理并发送完程序队列中的所有事件后,命令才会返回。

最典型的用法就是放在延时()命令后面可以防止程序假死!

一个 循环 要搜索电脑上的文件,若循环内 没有加处理事件() 的话,在循环 未结束 之前,你没办法操作 你的软件(比如要 停止搜索),因为 计算机一直 在计算循环内的程序,没时间 空间 来接受别的事件(如停止搜索)也是假死状态。

若循环内 加了处理事件()的话, 处理事件()的作用 就是给你一个 可以操作的 时间 、空间 让你去停止 这个循环

总之:处理事件() 可以简单的理解为 短暂的 暂停一下程序 让用户有时间来操作。一般 处理事件() 是放在多次循环中.

多线程中要不要用处理事件()

.版本 2

.子程序 测试线程

.判断循环首 (运行 = 真)
' 这里是程序代码
' 这里是程序代码
' 这里是程序代码
' 这里是程序代码
' 这里是程序代码
' 这里是程序代码
延时 (200)
处理事件 ()
.判断循环尾 ()

如上图所示:
线程中究竟要不要加延时跟处理事件?这个一直拿捏不好。
一、如果不加延时或延时过快,比如,程序代码是修改某一标签标题,那么这时速度过快就造成标签不停的闪动。但某些功能必须要执行很快和能及时刷新。
二、要不要在尾部加上:处理事件() 有时好像不加也行,但有时不加就会造成CPU飚升。
网友解答举例:
使用精易模块的 程序_延时() 就行了 而且,那个是根据自己需要来算的
比如,你代码执行完都需要点时间,你不延时,也没有什么问题,但是,如果你代码执行完成很快,那么循环又很多,就容易卡死,标签显示,顶多是没有反应过来,不会显示标题,但是,你用标签1.刷新,还是会显示的,不冲突就没有问题。。。
对于处理事件 线程中,很少用到,因为这个主要是单线程为了不卡界面而使用的,当然了,如果你多线程也卡页面,也能使用这个,呵呵。。。

举例

新建一 按钮)
.版本 2

.子程序 _按钮1_被单击
.局部变量 i, 整数型

.计次循环首 (100000, i)
    _启动窗口.标题 = 到文本 (i)
    处理事件 ()
.计次循环尾 ()

不加处理事件的话,就不能动窗口了。如果发现有假死什么的,可以用。


发布日期:

所属分类: 易语言 标签: