为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 易语言例程 正文

易语言简单的多线程例子源码

三叶资源网 2017-02-11 01:15:24 易语言例程 1423 ℃ 4 评论
.版本 2
.支持库 EThread
.支持库 iext

.子程序 __启动窗口_将被销毁

强制结束线程 (母线程_句柄)  ' 在窗口结束前 最好是销毁掉,别占用到系统的内存空间
删除进入许可证 (全局_线程操作许可证)


.子程序 _按钮_开始操作_被单击

超级列表框.全部删除 ()

Amount = 到整数 (编辑框_总数.内容)
Thred_amount = 到整数 (编辑框_线程个数.内容)
.如果真 (Thred_amount > Amount)  ' 判断单次 启动子线程是否大于 总数量
    信息框 (“线程数量不能大于总数量!”, #警告图标, “提示”, )
    返回 ()
.如果真结束


连续赋值 (真, 编辑框_总数.禁止, 编辑框_线程个数.禁止, 按钮_开始操作.禁止)
连续赋值 (假, 按钮_暂停.禁止, 按钮_停止.禁止)

全局_线程动作 = -1
全局_子线程完成个数 = 0

启动线程 (&母线程, , 母线程_句柄)


.子程序 母线程, , , 控制子线程 启动、暂停、继续、停止、等
.局部变量 i, 整数型
.局部变量 临时句柄, 整数型

清除数组 (记录_句柄)  ' 清楚记录的 子线程 句柄

.计次循环首 (Amount, i)

    进入许可区 (全局_线程操作许可证)
    超级列表框.插入表项 (, 到文本 (i), , , , )
    退出许可区 (全局_线程操作许可证)

.计次循环尾 ()


i = 0  ' 置0


.判断循环首 (i < Amount)  ' 判断i值是否小于母线程的总数量

    ' 能进入近来就是代表i还是小于的
    ' 继续执行 子线程的启动操作

    进入许可区 (全局_线程操作许可证)
    超级列表框.保证显示 (i)
    超级列表框.现行选中项 = i
    退出许可区 (全局_线程操作许可证)

    i = i + 1
    启动线程 (&子线程, i, 临时句柄)  ' 传入操作索引
    加入成员 (记录_句柄, 临时句柄)  ' 把启动的 子线程 句柄加入到数组里面     !!在子线程操作结束完后可以通过数组里的下标销毁启动的子线程
    延时 (10)  ' 线程 里建议用延时

    .如果真 (i % Thred_amount = 0)  ' 判断 单次启动 子线程 操作数量 是否达到,比如 5 个线程操作
        ' 达到 单次启动 子线程 操作数量

        .判断循环首 (全局_子线程是否继续 = 假)  ' 判断 启动的 子线程 是否操作结束
            ' 等待启动的 子线程走完

            延时 (10)  ' 线程 里建议用延时

        .判断循环尾 ()
        ' 单次启动 子线程 操作数量 操作完成
        全局_子线程是否继续 = 假
        全局_子线程完成个数 = 0
        处理事件 ()
    .如果真结束

    ' 判断用户有没有选择 中断操作
    .如果真 (全局_线程动作 = 0)  ' 0是暂停
        ' 进入暂停
        ' 暂停成功
        进入许可区 (全局_线程操作许可证)
        按钮_暂停.标题 = “暂   停”
        按钮_继续.禁止 = 假
        退出许可区 (全局_线程操作许可证)

        .循环判断首 ()
            延时 (100)  ' 线程 里建议用延时
            .如果真 (全局_线程动作 = 2)  ' 2是停止
                跳出循环 ()
            .如果真结束

        .循环判断尾 (全局_线程动作 = 0)  ' 等待用户点击继续
        .如果真 (全局_线程动作 = 2)  ' 2是停止
            跳出循环 ()
        .如果真结束

        ' 用户选择了继续
        进入许可区 (全局_线程操作许可证)
        按钮_暂停.禁止 = 假
        退出许可区 (全局_线程操作许可证)
        全局_线程动作 = -1
    .如果真结束

    .如果真 (全局_线程动作 = 2)  ' 2是停止
        跳出循环 ()
    .如果真结束


.判断循环尾 ()


进入许可区 (全局_线程操作许可证)
连续赋值 (假, 编辑框_总数.禁止, 编辑框_线程个数.禁止, 按钮_开始操作.禁止)
连续赋值 (真, 按钮_暂停.禁止, 按钮_继续.禁止, 按钮_停止.禁止)
按钮_停止.标题 = “停   止”
退出许可区 (全局_线程操作许可证)

.如果 (i = Amount)
    标签2.调用反馈事件 (0, , )  ' 设置的操作数量完成提示
.否则
    标签2.调用反馈事件 (i, , )  ' 反馈操作数量提示
.如果结束



强制结束线程 (母线程_句柄)  ' 结束本身

.子程序 子线程, , , 子线程 处理数据,比如下载、传输数据到网站、处理本地的一些数据等等哈
.参数 操作索引, 整数型
.局部变量 Rand_Time, 整数型, , , 模拟软件处理的时间
.局部变量 Load_Time, 整数型, , , 本子线程启动的时间
.局部变量 End_Timne, 整数型, , , 本子线程操作结束的时间


' 调试输出 (“第” + 到文本 (操作索引) + “个线程,启动成功!”)
Load_Time = 取启动时间 ()
' ---------------------------------------------
' 中间执行代码的过程

置随机数种子 ()
Rand_Time = 取随机数 (3, 6) × 1000  ' 随机生成一个时间!!!  只是测试。假如是真实要处理数据的话这里放上对应要处理的代码即可
延时 (Rand_Time)  ' 线程 里建议用延时

' 中间执行的代码结束
' ---------------------------------------------
End_Timne = 取启动时间 ()
进入许可区 (全局_线程操作许可证)
超级列表框.置标题 (操作索引 - 1, 1, 到文本 ((End_Timne - Load_Time) ÷ 1000) + “S”)  ' 置入线程操作耗时提示
退出许可区 (全局_线程操作许可证)

全局_子线程完成个数 = 全局_子线程完成个数 + 1
.如果真 (全局_子线程完成个数 % Thred_amount = 0)  ' 判断是否 达到 单次 子线程 的操作数量
    全局_子线程是否继续 = 真
.如果真结束


' 调试输出 (“第” + 到文本 (操作索引) + “个线程,操作结束!”)

强制结束线程 (记录_句柄 [操作索引])  ' 结束本子线程


.子程序 _按钮_暂停_被单击

按钮_暂停.禁止 = 真
按钮_暂停.标题 = “正在暂停”
全局_线程动作 = 0


.子程序 _按钮_继续_被单击

按钮_继续.禁止 = 真
全局_线程动作 = 1


.子程序 _按钮_停止_被单击

连续赋值 (真, 按钮_暂停.禁止, 按钮_继续.禁止, 按钮_停止.禁止)
按钮_停止.标题 = “正在停止 ”
全局_线程动作 = 2


.子程序 _标签2_反馈事件, 整数型
.参数 参数一, 整数型
.参数 参数二, 整数型

.如果 (参数一 = 0)
    信息框 (到文本 (Amount) + “个数量操作完成”, #信息图标, “提示”, )
.否则
    信息框 (“完成” + 到文本 (参数一) + “个数据操作”, #信息图标, “提示”, )
.如果结束



.子程序 _编辑框_线程个数_按下某键, 逻辑型
.参数 键代码, 整数型
.参数 功能键状态, 整数型

返回 (假)


.子程序 _编辑框_总数_按下某键, 逻辑型
.参数 键代码, 整数型
.参数 功能键状态, 整数型

返回 (假)

@吾爱编程mm

文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

已有4位网友发表了看法:

  • 易语言

    易语言  评论于 [2020-08-17 18:25:10]  回复

    易语言简单的多线程

  • 易语言

    易语言  评论于 [2020-08-17 19:00:17]  回复

    易语言简单的多线程

  • 例程源码

    例程源码  评论于 [2021-06-04 11:03:17]  回复

    结束标签反馈事件里的线程源码

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
音频转换大师淘宝登录透明风格微信网页版协议窗口特效会员签到工具源码界面引擎源码淘口令解析CMD输出ex_ui界面支持库大数据去重复书法SQL百度POSTsqlite3取电脑硬件信息自动发货文件搜索access数据库
最新评论