看流星社区

 找回密码
 注册账号
查看: 3436|回复: 0

易语言多线程程序崩溃 线程泄露解决办法

[复制链接]

该用户从未签到

发表于 2015-3-11 20:32:46 | 显示全部楼层 |阅读模式
最近在写多线程一采集程序时遇到了程序崩溃自动关闭的显现,在网上查了下原因和解决方法,这里记录下,以备后用。
一般出现这种情况多在生成了程序后,调试时候数据不太多一般察觉不到。其原因是多线程对于双核CPU亲和性上的问题。解救方法如下:
先加入DLL:

.版本 2
  
.DLL命令 SetProcessAffinityMask, 整数型, , , 公开, 设置CPU亲和性 进程句柄 返回CPU号
    .参数 hProcess, 整数型
    .参数 hProcess, 整数型
      
.DLL命令 SetThreadAffinityMask, 整数型, , , 公开, 设置CPU亲和性 线程句柄
    .参数 hProcess, 整数型
    .参数 Mask, 整数型
      
.DLL命令 GetCurrentProcess, 整数型, , , 公开, 获取当前进程的一个伪句柄 一般是-1
      
.DLL命令 GetCurrentThread, 整数型, , , 公开, 获取当前线程的一个伪句柄 一般是-2
    之后只需要在易代码开头(如__启动窗口_创建完毕时)前加入如下命令:
      
SetProcessAffinityMask (-1, 1)
   现在再生成程序测试下,问题解决了吧?
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-4-18 14:31

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表