.版本 2
.支持库 iext
.程序集 启动
.程序集变量 任务, 任务
.程序集变量 任务数, 整数型
.程序集变量 线程数, 整数型
.程序集变量 t, 整数型
.子程序 __启动窗口_创建完毕
.子程序 _按钮1_被单击
任务数 = 到整数 (编辑框_任务.内容)
线程数 = 到整数 (编辑框_线程.内容)
任务.创建 (任务数)
生成数据 ()
t = 取启动时间 ()
任务.执行 (&计算, 线程数)
.子程序 计算
.参数 ID, 整数型
.参数 剩余数量, 整数型
.参数 当前线程, 整数型
.参数 循环ID, 整数型
超级列表框1.置标题 (ID, 3, 到文本 (到整数 (超级列表框1.取标题 (ID, 1)) + 到整数 (超级列表框1.取标题 (ID, 2))))
.判断开始 (剩余数量 = 0)
标题 = “计算完毕 耗时:” + 到文本 (取启动时间 () - t)
.默认
标题 = “当前线程:” + 到文本 (当前线程) + “ 当前任务:” + 到文本 (ID) + “ 剩余任务:” + 到文本 (剩余数量)
.判断结束
.子程序 生成数据
.局部变量 ID, 整数型
.局部变量 i, 整数型
处理事件 ()
标题 = “正在生成数据...”
超级列表框1.表项 = { }
超级列表框1.禁止 = 真
超级列表框1.禁止重画 ()
.计次循环首 (任务数, i)
ID = 超级列表框1.插入表项 (, , , , , )
超级列表框1.置标题 (ID, 0, 到文本 (ID + 1))
超级列表框1.置标题 (ID, 1, 到文本 (取随机数 (1, 100)))
超级列表框1.置标题 (ID, 2, 到文本 (取随机数 (1, 100)))
任务.加入 (ID)
.计次循环尾 ()
标题 = “生成完毕 数量” + 到文本 (任务.数量 ())
超级列表框1.允许重画 ()
超级列表框1.重画 ()
超级列表框1.禁止 = 假
易语言多线程操作源码
.版本 2
.支持库 EThread
.程序集 窗口程序集1
.程序集变量 多线程句柄变量, 整数型
.程序集变量 多线程证书变量, 整数型
.子程序 __启动窗口_创建完毕
多线程证书变量 = 创建进入许可证 ()
.子程序 _按钮1_被单击
.局部变量 t, 整数型
.局部变量 i, 整数型
编辑框1.内容 = “”
t = 取启动时间 ()
.计次循环首 (1000, i)
编辑框1.加入文本 (到文本 (i) + #换行符)
.计次循环尾 ()
信息框 (取启动时间 () - t, 0, )
.子程序 _按钮2_被单击
启动线程 (&子程序1, , 多线程句柄变量)
.子程序 子程序1
.局部变量 t, 整数型
.局部变量 i, 整数型
编辑框1.内容 = “”
t = 取启动时间 ()
.计次循环首 (1000, i)
进入许可区 (多线程证书变量)
.如果真 (选择框1.选中 = 真)
等待线程 (多线程句柄变量, 1000)
.如果真结束
编辑框1.加入文本 (到文本 (i) + #换行符)
退出许可区 (多线程证书变量)
.计次循环尾 ()
信息框 (取启动时间 () - t, 0, )
.子程序 _按钮3_被单击
强制结束线程 (多线程句柄变量)
.子程序 _按钮4_被单击
关闭线程句柄 (多线程句柄变量)
输出调试文本 (多线程句柄变量)
.子程序 _按钮5_被单击
销毁 ()
.子程序 __启动窗口_可否被关闭, 逻辑型
删除进入许可证 (多线程证书变量)