易语言实现多线程计算的代码
多线程计算
此功能需要加载精易模块5.6
.版本 2
.支持库 iext
.程序集 窗口程序集1
.程序集变量 总线程id, 整数型
.程序集变量 线程判断数量, 整数型
.程序集变量 线程总数, 整数型
.程序集变量 线程id, 整数型
.程序集变量 当前表项, 整数型
.程序集变量 许可证, 整数型
.子程序 __启动窗口_创建完毕
.局部变量 i1, 整数型
.计次循环首 (10000, i1)
置随机数种子 ()
超级列表框1.插入表项 (, , , , , )
超级列表框1.置标题 (i1 - 1, 0, 到文本 (取随机数 (1, 99)))
超级列表框1.置标题 (i1 - 1, 1, 多项选择 (取随机数 (1, 4), “加”, “减”, “乘”, “除”))
超级列表框1.置标题 (i1 - 1, 2, 到文本 (取随机数 (1, 99)))
.计次循环尾 ()
.子程序 _按钮_启动_被单击
总线程id = 线程_启动 (&子程序_计算, , )
.子程序 子程序_计算
.局部变量 表项引索, 整数型
.判断循环首 (线程判断数量 < 超级列表框1.取表项数 ())
.如果真 (线程总数 < 到整数 (编辑框_总线程数.内容))
线程判断数量 = 线程判断数量 + 1
线程id = 线程_启动 (&子程序_结果)
超级列表框1.置标题 (表项引索, 3, “计算中”)
表项引索 = 表项引索 + 1
线程总数 = 线程总数 + 1
.如果真结束
.判断循环尾 ()
.子程序 子程序_结果
.局部变量 数值1, 双精度小数型
.局部变量 数值2, 双精度小数型
.局部变量 计算符号, 文本型
.局部变量 结果, 双精度小数型
.局部变量 i, 整数型
当前表项 = 当前表项 + 1
i = 当前表项 - 1
数值1 = 到数值 (超级列表框1.取标题 (i, 0))
数值2 = 到数值 (超级列表框1.取标题 (i, 2))
计算符号 = 超级列表框1.取标题 (i, 1)
.如果真 (计算符号 = “加”)
结果 = 数值1 + 数值2
.如果真结束
.如果真 (计算符号 = “减”)
结果 = 数值1 - 数值2
.如果真结束
.如果真 (计算符号 = “乘”)
结果 = 数值1 × 数值2
.如果真结束
.如果真 (计算符号 = “除”)
结果 = 数值1 ÷ 数值2
.如果真结束
程序_延时 (1, 1)
超级列表框1.置标题 (i, 3, 到文本 (结果))
程序_延时 (1, 1)
线程总数 = 线程总数 - 1
.子程序 _按钮_销毁_被单击
线程_销毁 (总线程id)
.子程序 _按钮_暂停_被单击
线程_挂起 (总线程id)
.子程序 _按钮_恢复_被单击
线程_恢复 (总线程id)
.子程序 __启动窗口_将被销毁
线程_销毁 (总线程id)
运行结果:
总结
以上是 易语言实现多线程计算的代码 的全部内容, 来源链接: utcz.com/z/348115.html