VBGood网站全文搜索 Google

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

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
楼主: download

[原创] 全球首创? 再次突破VB极限!VB真正稳定多线程(不用tlb,tls,ax,pcode)

  [复制链接]
发表于 2010-4-26 13:01:40 | 显示全部楼层
19# msflexgrid

汇编是Flat Assembler啊……不过所有的汇编都不用编译了,我已经编译过,然后把机器码抄出来,放到cls里面去了(clsSingleThreadWrapper.cls),汇编文件只是给你参考,免得不知道我的程序是在干什么……

是不是先切回主线程执行完再切回子线程
差不多,反正就是子线程调用SendMessage,这时根据M$的文档,应该就切换回主线程了(如果主线程能收到消息)……我在IDE里面调试的时候,Debug窗口确实输出了结果,说明消息正常收到并处理……但是实例数量我没有统计,估计在这个地方出了问题……

另,你说的“IQ”是什么意思?

PS:“本来”的意思是如果不行的话我就尝试你给出的那个方法看看……
回复 支持 反对

使用道具 举报

发表于 2010-4-26 13:19:58 | 显示全部楼层
不懂!!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-26 13:40:04 | 显示全部楼层
17# msflexgrid

clsSQLFileObject是个VB ActiveX DLL.用来连接,操作SQLSERVER中的Table.

崩溃,即使使用一个线程。clsSQLFileObject绝对没问题。
VBAdvisor 发表于 2010-4-26 12:46


把代码放上来看看...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-26 13:46:26 | 显示全部楼层
19# msflexgrid  

汇编是Flat Assembler啊……不过所有的汇编都不用编译了,我已经编译过,然后把机器码抄出来,放到cls里面去了(clsSingleThreadWrapper.cls),汇编文件只是给你参考,免得不知道我的程序是在干 ...
acme_pjz 发表于 2010-4-26 13:01


IQ->IUnk中的第一个函数,好像叫IUNK...QUE太长了,缩写一下. -_-!
回复 支持 反对

使用道具 举报

发表于 2010-4-26 13:46:32 | 显示全部楼层
23# download
Dim objdata1 As clsSQLFileObject
Set objdata1 =  New clsSQLFileObject '出错!!!
clsSQLFileObject就是一般的VB ActiveX DLL。本身没问题。去掉Module 中的CreateIExprSrvObj 0, 4, 0和Form1中的CreateThread,测试就没有问题。
回复 支持 反对

使用道具 举报

发表于 2010-4-26 14:23:57 | 显示全部楼层
19# msflexgrid

我已经自行修正,看APIWiki源代码帖子第25楼……
回复 支持 反对

使用道具 举报

发表于 2010-4-26 15:25:34 | 显示全部楼层
23# download
Dim objdata1 As clsSQLFileObject
Set objdata1 =  New clsSQLFileObject '出错!!!
clsSQLFileObject就是一般的VB ActiveX DLL。本身没问题。去掉Module 中的CreateIExprSrvObj 0, 4, 0和For ...
VBAdvisor 发表于 2010-4-26 13:46

这条API是初始化VBA、S……
你这不是线程函数,并且己经初始化了,你再初始化当然出问题 了。。。
回复 支持 反对

使用道具 举报

发表于 2010-4-26 16:28:28 | 显示全部楼层
27# msflexgrid

不行,就是不行。为什么所有的所谓的多线程都用同样的手段去测试呢?为什么不搞一个真实环境/案例?

  1. Do
  2.         i = i + 1

  3.         'Sleep 10
  4.         frmOutput.txtStream1 = i

  5.         DoEvents
  6.         ret = WaitForSingleObject(lEventHandle, 10)
  7.     Loop Until ret = 0
复制代码
回复 支持 反对

使用道具 举报

发表于 2010-4-26 16:55:13 | 显示全部楼层
是啊,哈哈

不知道为何 msgbox 不出来...(估计另有弦机)不过他不出错了
download 发表于 2010-4-26 10:07


没关系,我测试了一下,换成API MessageBox就行了!
回复 支持 反对

使用道具 举报

发表于 2010-4-26 18:57:17 | 显示全部楼层
27# msflexgrid

不行,就是不行。为什么所有的所谓的多线程都用同样的手段去测试呢?为什么不搞一个真实环境/案例?

Do
        i = i + 1

        'Sleep 10
        frmOutput.txtStream1 = i

    ...
VBAdvisor 发表于 2010-4-26 16:28

真实案例请看楼主签名的第一个案例……(也就是二楼的产品)

另外有可能你的代码刚才用到了楼主说的XXX。
由于你没上传测试出错的代码,这里就不凭空瞎猜了。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2022-7-3 17:41

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