精易论坛

标题: post多线崩溃的解决 [打印本页]

作者: yutower    时间: 2016-3-7 18:33
标题: post多线崩溃的解决
最近在写多线程一采集程序时遇到了程序崩溃自动关闭的显现,在网上查了下原因和解决方法,这里记录下,以备后用。
    一般出现这种情况多在生成了程序后,调试时候数据不太多一般察觉不到。其原因是多线程对于双核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)



   亲测这个dll很有用的,分享下。

作者: 夜的静night    时间: 2016-3-7 18:40
thanks  论坛貌似也有这方面的解答哈
作者: う网淅乄    时间: 2016-3-7 19:00
就是设置cpu亲和性
作者: daliubeyond    时间: 2016-3-7 20:35
多核的话 就是浪费资源了
作者: fengyishen    时间: 2016-3-7 20:49
这个精易模块已经收录了
作者: A—小哲    时间: 2016-3-8 00:58
这个DLL已经被我封装成 模块了。。
作者: boyfriendx    时间: 2016-3-8 12:35
多谢 正好需要!
作者: 短尾巴熊    时间: 2016-3-12 15:22
fengyishen 发表于 2016-3-7 20:49
这个精易模块已经收录了

精易模块里有这个?
作者: kcheol    时间: 2016-3-25 13:06
新人看不懂怎么用
作者: Lucase    时间: 2016-10-11 15:56
短尾巴熊 发表于 2016-3-12 15:22
精易模块里有这个?

没有吧??




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4