棕榈油种植周期:在易语言中多线程超稳定用法 - 易语言资源专区 - 蓝芯技术 编程技术论坛|易语言技术交流...

来源:百度文库 编辑:偶看新闻 时间:2024/04/27 21:38:54
在易语言中多线程超稳定用法


    大家好,第一期易语言电子期刊与大家见面了。在此开设了一个“易语言编程技巧”的栏目,将一些在易语言中使用的技巧介绍给大家,希望大家喜欢。

不知大家试了没有,在易语言自带多线程的使用中,会发现一些不稳定的现象,如:程序运行不稳定、退出程序时报错、有死机现象、多线程中不能直接销毁组件等。例如运行以下代码,程序会自动退出。



.子程序 _按钮1_被单击

启动线程 (多线程子程序, )



.子程序 多线程子程序

按钮1.销毁 ()  ' 直接用就是不行哦!



现在,大家可以改变一下调用多线程的方式,用标签的反馈事件执行多线程子程序,

绝大部分不稳定问题都可以解决了。

具体执行代码要写在标签反馈事件中,多线程中再用标签的“调用反馈事件”去调用。易语言对这个标签组件的反馈事件做过特殊处理。

上述代码可写为以下,运行就可以通过了:



.子程序 _按钮1_被单击

启动线程 (多线程子程序, )



.子程序 多线程子程序

标签1.调用反馈事件 (0, 0, 假)



.子程序 _标签1_反馈事件, 整数型

.参数 参数一, 整数型

.参数 参数二, 整数型

按钮1.销毁 ()



注意:以下调用是错误的!

启动线程 (_标签1_反馈事件, )



.子程序 多线程子程序

_标签1_反馈事件() 标签反馈 事件 可以理解为 消息机制 类似于窗口函数,不过他只接受一种消息类型 就是 消息为32885 的消息  参数一  和参数二 是用来传递参数的,  和SENDMESSGAE  里的 wParam, lParam一样;注册热键命令会返回一个 热键的 ID标识符;用来标识你所注册的热键,然后如果有热键按下他会把这个 ID 发送给 你的反馈事件 的参数一 你注册一个热键这样写可以, 但是如果你注册俩以上的热键 必须要用全局变量来保存这个 “热键ID”  然后在 反馈事件里 判断(参数一=热键ID) 如果等于 就说明是你注册的热键按下了;目前易语言 里如果用 注册热键这个命令只有用标签的反馈事件了;至于标签事件可以有别的用处吗;回答你是有,例如:两个进程通讯 就可以发送消息用标签反馈事件处理,例如 SendMessage (参数一, 32885, 标签1.取窗口句柄 (), 100) 其中参数一 是另一程序的 标签窗口句柄;32885 意思就是发送标签反馈事件消息; 至于后面的取窗口句柄 就是 把参数一 里传递自己的标签句柄 给另一个程序, 后面的100 就是参数二了 代表 本进程发给另一个进程的数据~