本帖最后由 jingyi11023995 于 2017-4-10 11:14 编辑
因为自己写的一个软件,只是单线程,在不同电脑上运行,个别电脑出现闪退。
所以在本论坛和百度搜索易语言闪退的原因,看了不少文章和帖子,也做了不少的尝试。
有人说到:假如一个线程要对某个变量取值,而刚好这个时候有另外一个线程要对这个变量赋值,可能会出现错误。
于是,我想到了用自己的建的一个类,在类中用许可证来防止这种情况的发生。代码如下(只写了文本和整数的,其他类型照着写就行了):
窗口程序集名 | 保 留 | 保 留 | 备 注 | 线程中变量安全操作类, , 公开 | | | | 调试输出 (“线程中变量安全操作类 _初始化”)许可证 = 创建进入许可证 ()删除进入许可证 (许可证 )|
文本安全操作 | | | |
操作类型 | 整数型 | | | | 文本变量 | 文本型 | | | | 赋值内容 | 文本型 | | | | 进入许可区 (许可证 )判断 (操作类型 = 0 )文本变量 = 赋值内容 退出许可区 (许可证)|
整数安全操作 | | | |
操作类型 | 整数型 | | | | 整数变量 | 整数型 | | | | 赋值内容 | 整数型 | | | | 进入许可区 (许可证 )判断 (操作类型 = 0 )整数变量 = 赋值内容 退出许可区 (许可证)
PS:刚测试了,失败,有没有大神帮忙看看?
补充内容 (2017-4-11 12:13):
解决了,代码在27楼。 |