企邦科技 发表于 2016-12-8 17:58:53

刚来没权限,发个多线程初级教程吧,大神莫喷

在此附上一个简单的多线程演示,

要点:
1.线程中操作窗口组件、全局变量、程序集变量时,加上许可证,可以保障资源不冲突

2.如何保持稳定的工作线程数

3.尽量避免,不用延迟命令



注:本源码仅使用系统核心支持库及易语言自带的多线程支持库,仅供学习使用,鉴于程序长时间运行,内存得不到释放这个问题,在此并没有得到解决,故此法并不适用于所有软件,请酌情使用。(反正我自己很少用)


.版本 2
.支持库 EThread
.支持库 iext

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

bool = 真' 控制开关
.计次循环首 (到整数 (编辑框1.内容), )' 创建线程的数量
    启动线程 (&投递线程, , )
.计次循环尾 ()

.子程序 投递线程

.判断循环首 (bool ≠ 假)' 用判断循环来保持工作线程数
    Get_Index ()
.判断循环尾 ()

.子程序 Get_Index
.局部变量 i, 整数型

进入许可区 (Per)' 线程中操作组件或者全局变量以及程序集变量,尽量加上许可证
index = 超级列表框1.插入表项 (, , , , , )
退出许可区 (Per)
i = index
进入许可区 (Per)
超级列表框1.置标题 (i, 0, 到文本 (i + 1))' 序号
超级列表框1.置标题 (i, 1, 到文本 (i))' 索引
超级列表框1.保证显示 (i)
.如果真 (超级列表框1.取表项数 () > 10000)
    超级列表框1.全部删除 ()
.如果真结束
退出许可区 (Per)
返回 ()

.子程序 __启动窗口_创建完毕

Per = 创建进入许可证 ()


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

bool = 假


HKMaxwell 发表于 2016-12-27 08:13:18

联系我时,请说是在海论坛 上看到的,谢谢!

小冷MC 发表于 2016-12-27 12:36:07

功能很强大 很喜欢

米酒白酒葡萄酒 发表于 2016-12-29 19:05:57

感谢分享~期待更多的分享~

语过留唇 发表于 2017-1-5 16:47:55

这个要支持。顶一个

那片星空那片海 发表于 2017-8-3 14:39:50


联系我时,请说是在 挂海论坛 上看到的,谢谢!

wangguifeng 发表于 2018-4-30 18:48:36

回复看隐藏~

xiaolv0396 发表于 2021-12-24 16:05:44


联系我时,请说是在海论坛 上看到的,谢谢!
页: [1]
查看完整版本: 刚来没权限,发个多线程初级教程吧,大神莫喷