首页 / 帮助中心 / 正文

帮助中心

【易语言】多线程程序崩溃 线程泄露解决办法
来源:飘零网络 | 发布时间:2014-3-6
最近在写多线程一采集程序时遇到了程序崩溃自动关闭的显现,在网上查了下原因和解决方法,这里记录下,以备后用。

    一般出现这种情况多在生成了程序后,调试时候数据不太多一般察觉不到。其原因是多线程对于双核CPU亲和性上的问题。解救方法如下:

先加入DLL:

1
2
3
4
5
6
7
8
9
10
11
12
13
.版本 2
       
.DLL命令 SetProcessAffinityMask, 整数型, , , 公开, 设置CPU亲和性 进程句柄 返回CPU号
    .参数 hProcess, 整数型
    .参数 hProcess, 整数型
       
.DLL命令 SetThreadAffinityMask, 整数型, , , 公开, 设置CPU亲和性 线程句柄
    .参数 hProcess, 整数型
    .参数 Mask, 整数型
       
.DLL命令 GetCurrentProcess, 整数型, , , 公开, 获取当前进程的一个伪句柄 一般是-1
       
.DLL命令 GetCurrentThread, 整数型, , , 公开, 获取当前线程的一个伪句柄 一般是-2

    之后只需要在易代码开头(如__启动窗口_创建完毕时)前加入如下命令:

      
SetProcessAffinityMask (-1, 1)

   现在再生成程序测试下,问题解决了吧?

  • 飘零网络技术支持QQ群:
  • 诺易、①:52805016(已满)
  • 诺易、②:52806321(未满)
  • 诺易、③:52805561(已满)
  • 诺易、④:52805908(已满)
  • 诺易、⑤:54496044(已满)
  • 诺易、⑥:158766792(已满)
  • 诺易、⑦:134202750(已满)
  • 诺易、⑧:181423535(已满)
  • 诺易、⑨:89758906(已满)

关于飘零网络 | 主机管理 | 合作伙伴 | | | 飘零网络免责声明
Copyright © 2010-2018 闽ICP备12003655号·保留所有权利