VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
楼主: 西门吹雪

[原创] [全网首发]VB6实现真正的稳定的多线程(异步调用式,亲测稳定)!!!

[复制链接]
发表于 2015-9-19 08:31:31 | 显示全部楼层
楼主我下载的
Thread Factory 4(中文帮助文档).haozip01.zip不能正常解压啊!
回复 支持 反对

使用道具 举报

发表于 2015-9-19 10:09:33 | 显示全部楼层
楼主这个好像必须是注册过的dll才能加载打开窗口,能不能不用注册的直接通过ThreadFactory来打开呢?因为dll模块比较多时每个模块都要通过regsvr32注册才能用就比较麻烦了!
谢谢!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-9-20 03:20:22 | 显示全部楼层
本帖最后由 西门吹雪 于 2015-9-20 03:38 编辑
inat 发表于 2015-9-11 17:02
1.OCX就是可以破解的?不明白是已经破解了还是要怎么才能破解,我看补丁只破了DLL的.
2.我就是用的Close ...


    强制关闭工作者的确会导致卡死,这个是库的问题,但这都是在工作者对象正在执行代码的时候进行强制关闭而发生的,所以避免卡死,最合理的办法就是使用他提供的CancelObject来实现协调式的线程关闭,而不是强制式关闭,即由主程线通知工作者线程关闭,工作者对象内部主动退出,在退出后,在主线程进行关闭就不会再卡死了。
    但有的时候我们没有办法也不想去用这个麻烦的对象,那还有什么办法来解决卡死的问题呢。我是这样做的(这种方法可能还有其他问题,问题在后边说,先说解决方法):
    在主线程使用API函数TerminateThread强制关闭工作者对象所在的线程,则主线程不会卡死,且工作者线程会立即退出,而不是像使用CloseWorker那样要等待一会儿才能退出,但下一次要重复利用控件时,则在再次使用控件CreateWorker并且执行AsyncCall调用时,会发生自动化错误。
    根据Thread Factory的库的手册来看,我猜测原因应该是因为我们直接使用TerminateThread函数对线程进行关闭,这会导致系统不会对AsyncObject对象内部的一些COM接口进行自动清理,可能是因这个原因,不清理就导致下一次你在使用的时候发生自动化错误。
    也就是说,在CloseWorker之前调用TerminateThread的话,会导致即使再调用CloseWorker也无法清理对象了,这一点是我猜测的,我的依据是在资理管理器测试发现,如果这样做的话,就算卸载掉AsyncControl控件,内存也不会得到释放,因此这个方法也不完美。
    总的来讲,暂时除了使用协调式的方法来让工作者主动退出执行状态再用CloseWorker关闭这个方法之后,对于直接不管工作者即使它正在执行代码而直接用CloseWorker强制关闭这种情况所导致的卡死,我暂时也没有好的解决方法,有的话一定第一时间跟大家说,但现在用到的项目我都是避免使用CloseWorker进行强制关闭的。
    除了这个问题之外,Thread Factory还是很好用的,至少在VB来讲是真正做到了以前做不到的事,用起来也算比较方便的一种方法,可以说得上实用的。
回复 支持 反对

使用道具 举报

发表于 2015-9-21 15:04:34 | 显示全部楼层
西门吹雪 发表于 2015-9-20 03:20
强制关闭工作者的确会导致卡死,这个是库的问题,但这都是在工作者对象正在执行代码的时候进行强制 ...

感觉吹雪的详细回答,看来强制关闭确实没好的办法.
它的DLL不能放在中文目录这也是个很麻烦的事啊,释放到系统目录可能会让安全软件提示或拦截,只能强制释放到临时目录了,要是支持中文目录就好了,我喜欢都放在主程序一个文件夹
回复 支持 反对

使用道具 举报

发表于 2015-10-1 09:15:53 | 显示全部楼层
虽然现在已转向C++但是还是放不下VB 顶一目。。。。
回复 支持 反对

使用道具 举报

发表于 2015-10-30 23:13:47 | 显示全部楼层
  .......... 我这里是这样的...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-11-16 10:36:27 | 显示全部楼层
sq03 发表于 2015-10-30 23:13
.......... 我这里是这样的...

应该是网页编码的问题哦!
回复 支持 反对

使用道具 举报

发表于 2015-12-6 23:47:57 | 显示全部楼层
西门威武,辛苦了!
回复 支持 反对

使用道具 举报

发表于 2015-12-20 16:17:49 | 显示全部楼层
不知道这个有没有办法弄到原版的,现在他们家网站都没有了。下面出问题想买个正版的都做不到。。
回复 支持 反对

使用道具 举报

发表于 2015-12-28 14:41:36 | 显示全部楼层
这个 能 vba 用吗
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2022-5-29 03:33

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表