易语言 多线程 c00005,多线程与打开内存文件,坑得我泪崩!

本文介绍了使用易语言进行多线程编程时遇到的c00005错误,以及在处理内存文件时遇到的问题。在特定条件下,线程数量超过一定值会导致程序崩溃。通过示例代码,作者展示了打开、读写内存文件及线程管理的过程,探讨了解决这些问题的可能方法。
摘要由CSDN通过智能技术生成

.版本 2

.支持库 EThread

.程序集 窗口程序集_启动窗口

.程序集变量 集_计次, 整数型

.程序集变量 集_运行总次数, 整数型

.程序集变量 集_线程句柄, 整数型, , "0"

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

.局部变量 局_线程句柄, 整数型

.局部变量 lRow, 整数型

.局部变量 局_文件编号, 整数型

集_计次 = 0

集_运行总次数 = 1056  ' '为什么,编译后,运行。 在我的电脑上,“_标签_主线程_反馈事件”里加了“处理事件”,那么就不能超过 1056 超过了,就会闪退。如果在“_标签_主线程_反馈事件”里不加 “处理事件”,只能最大 1534  如果大于  1534 则后面的没有执行,真奇怪!

重定义数组 (集_线程句柄, 假, 集_运行总次数)

.计次循环首 (集_运行总次数, lRow)

局_文件编号 = 打开内存文件 ()

写出数据 (局_文件编号, “第一个参数”, “第二个参数”, 3, “第四个参数”, lRow)

启动线程 (&子程序1, 局_文件编号, 局_线程句柄)

集_线程句柄 [lRow] = 局_线程句柄

' '等待线程 (局_线程句柄, )  ' '使用了等待线程,就不会崩溃

关闭线程句柄 (局_线程句柄)

.计次循环尾 ()

标题 = “启动线程完毕”

.子程序 子程序1

.参数 参_文件编号, 整数型

.局部变量 局_第一个参数, 文本型</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
小白可以看看 很简单的处理 原帖和原始源码在这里是超级列表框主线程和线程调用时间区别 https://bbs.125.la/forum.php?mod=viewthreadtid=13916045 本例子 源码加了cpu亲和度 和线程里面利用标签反馈事件 1,CPU亲和度设置,线程里面操作超级列表框的话 我用了这个 机器没负载的情况下  线程里面写入超级列表框的速度大概比非线程慢1倍  如果不用这个线程里面写入超级列表框比非线程慢10倍,高级表格的没测试 .版本 2 SetProcessAffinityMask (-1, 1)  ' 完美 ' SetProcessAffinityMask 设置进程CPU相关性 参数设置 (2018-01-05 18:39:48)转载▼ ' 标签: setprocessaffinityma it 分类: API ' SetProcessAffinityMask ' 参数一:进程句柄    -1为自身句柄 ' 参数二:指定CPU ' 参数二的设置是二进制转十进制。参数二需填写十进制数字 ' 例如我想设置 ' 1CPU二进制为1 转换为十进制为 1 ' 2CPU二进制为10 转换为十进制为 2 ' 3CPU二进制为100 转换为十进制为 4 ' 4CPU二进制为1000 转换为十进制为 8 ' 1,2CPU二进制为11 转换为十进制为 3 ' 3,4CPU二进制为1100 转换为十进制为 12 ' 123CPU二进制为1110 转换为十进制为 14 ' 1234CPU二进制为1111 转换为十进制为 15 2,线程里面测试用超级列表框写入数据 比非线程慢很多 显示到列表框很慢  线程里面调用标签反馈  相当于 写入操作是在主线程/非线程里面进行的。 高级表格线程里面会崩溃  全部删除或者增加减少行 插入之类的操作会崩溃  同理可以这样处理  置数据不会崩溃 其他高级表格选择框按钮之类的没有测试过
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值