易语言启动线程线程套用问题

> 易语言多线程出错的问题
时间: / 分类: / 评论: / 浏览: 1,851
最近在给客户写软件,发现我这边一直没有发现出错的问题,但是客户的软件一运行多线程就出错,一直找不到问题,找了好久才找到解决方法,原来是CPU的问题,多线程对于双核CPU亲和性上有问题,现在找到问题的解决方法,顺便记录一下,或许有朋友遇到同样的问题,可以一起参考.
.DLL命令 SetProcessAffinityMask, 整数型, , , 公开, 设置CPU亲和性 进程句柄 返回CPU号
.参数 hProcess, 整数型
.参数 hProcess, 整数型
.DLL命令 SetThreadAffinityMask, 整数型, , , 公开, 设置CPU亲和性 线程句柄
.参数 hProcess, 整数型
.参数 Mask, 整数型
.DLL命令 GetCurrentProcess, 整数型, , , 公开, 获取当前进程的一个伪句柄 一般是-1
.DLL命令 GetCurrentThread, 整数型, , , 公开, 获取当前线程的一个伪句柄 一般是-2
将以下代码放到易代码开始即可:
SetProcessAffinityMask (-1, 1)
版权所有: , 转载请注明本文出处。线程挂起(暂停)的问题,求大婶帮忙说说!!!_易语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:73,273贴子:
线程挂起(暂停)的问题,求大婶帮忙说说!!!收藏
怎么样才能把次线程挂起,能说说吗,发了弟2次贴了,上一次农布懂
新手易语言交流群:新手易语言交流群:新手易语言交流群:新手易语言交流群:
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或上传时间:
56官方微信
扫一扫发现精彩1631人阅读
&1.&httpwebrequest默认最多支持2个线程,,无论你多少个new&thread都没意义,,后台同时工作的就2个,,,这问题郁闷我了不少时间,,为什么线程多的很,但网络用不光,前期以为是只用那么多带宽的问题,后来用了别人个用易语言写的程序才知道有问题。。
解决方法是在load中加入。。
&&&&ServicePointManager.DefaultConnectionLimit&=&Int32.MaxV
2.在多线程中,必须手动释放httpwebrequest,webresponse,StreamReader,stream等,,,否则:一旦出错就会卡很长一段时间。。(也就是线程跑步动)&&&如:&HttpWebRequest&hwr=
&&&&&&&&&&&&&&&&&&&&&&&&&try
&&&&&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&hwr=new&(HttpWebRequest)HttpWebRequest.Create(...);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&using(WebResponse&wr=hwr.GetRes....)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&}catch{}
&&&&&&&&&&&&&&&&&&&&&&&if(hwr!=null)hwr.abort()
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&有dispose方法的,也加上,,不要用NET自带的释放,,否则自讨苦吃。。
3.当&httpwebrequest.method是,POST时,,一定要加上。。。hwr.ServicePoint.Expect100Continue&=&&否则,当有网络错误/换IP时,就会把线程卡住。。
4.&与其不段的建立线程,不如先建立指定的数量,让每个线程循环读取工作任务即可。。前者占用资源是后者的几倍。。。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场Blog / 阅读
易语言中多线程内使用正则类模块程序错误闪退的问题
19:35:54 in ,
正则表达式类都是利用com对象来做的,而在线程里操作com对象,需要先初始化com。
DLL 命令添加:
.DLL命令 CoInitialize, , "ole32", "CoInitialize"
&&& .参数 a, , , 0
.DLL命令 CoUninitialize, , "ole32", "CoUninitialize"
在正则操作之前 执行
CoInitialize (0)
操作完毕后执行
CoUninitialize ()
526互联致力于最新开发技术,为您的网站或软件提供最新最优质的的服务是我们应尽的责任。
电话: +86 (0) 137-

我要回帖

更多关于 易语言结束线程 的文章

 

随机推荐