VBGood网站全文搜索 Google

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

VB爱好者乐园(VBGood)

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

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

  [复制链接]
发表于 2010-4-26 19:06:57 | 显示全部楼层
没关系,我测试了一下,换成API MessageBox就行了!
yimins 发表于 2010-4-26 16:55

vb的msgbox似乎会暂停vb程序的主线程
api的好像不会。。。
回复 支持 反对

使用道具 举报

发表于 2010-4-26 20:33:37 | 显示全部楼层
弱弱的问几个问题哈~~

1、最后Form_Unload里面的Call TerminateProcess(GetCurrentProcess, ByVal 0&)是必须的吗?我注释掉之后似乎也没有发现什么问题。

2、结束线程必须用TerminateThread这个方法么?ExitThread会不会温柔一点?

3、在Form_Unload里面将线程都TerminateThread掉是必须的么?

4、最后一个问题就是开出来的线程如果自然运行到End Sub之后,是不是会自行结束掉自己?这个之后还需要TerminateThread掉线程句柄么?

谢谢~!
回复 支持 反对

使用道具 举报

发表于 2010-4-26 20:35:48 | 显示全部楼层
vb的msgbox似乎会暂停vb程序的主线程
api的好像不会。。。
msflexgrid 发表于 2010-4-26 19:06


更狠的是,messagebox函数里我直接给传了个主窗体的句柄进去,嘿嘿~~~居然没事。运行的很好。效果也和VB的msgbox一样了哈~~
回复 支持 反对

使用道具 举报

发表于 2010-4-26 21:26:09 | 显示全部楼层
弱弱的问几个问题哈~~

1、最后Form_Unload里面的Call TerminateProcess(GetCurrentProcess, ByVal 0&)是必须的吗?我注释掉之后似乎也没有发现什么问题。

2、结束线程必须用TerminateThread这个方法么?Exit ...
yimins 发表于 2010-4-26 20:33

1.那个可能是原作者(那老外)怕退不出强行关闭吧……
2.try by yourself
3.跟2一样,不退出的话,似乎进程 不会关闭(窗口没了,有个进程名在内存?)(没试过……)
4.肯定的吧。。。(老实说那个老外的代码我也没看,只是随便找来+复制粘贴+测试,我看的代码是1000大洋的那个协议,猜想应该可以通用,所以网上乱找个最简单的例子试试

5.上面例子不是在子线程中调用主窗口的textbox控件显示数字都没事吗?区区一个句柄,传进去,肯定没事。所以才号称全球首创真正稳定多线程……


不过还是有会出错的函数……好像还没人发现,留给大家继续探索……
(另外二楼出大洋的不要提前公布答案啊不然要罚款)
回复 支持 反对

使用道具 举报

发表于 2010-4-26 22:25:54 | 显示全部楼层
1.那个可能是原作者(那老外)怕退不出强行关闭吧……
2.try by yourself
3.跟2一样,不退出的话,似乎进程 不会关闭(窗口没了,有个进程名在内存?)(没试过……)
4.肯定的吧。。。(老实说那个老外的代码我 ...
msflexgrid 发表于 2010-4-26 21:26


换成ExitThread的时候很爽快的崩了,连句遗言都没留下。

其它好像都没事。甚至不TerminateProcess而直接退出主进程也没事。估计系统会自动回收吧。
回复 支持 反对

使用道具 举报

发表于 2010-4-26 23:22:15 | 显示全部楼层
换成ExitThread的时候很爽快的崩了,连句遗言都没留下。

其它好像都没事。甚至不TerminateProcess而直接退出主进程也没事。估计系统会自动回收吧。
yimins 发表于 2010-4-26 22:25

不知道你加在哪里?
PS:ExitThread是用在线程中主动退出吧?
如果你放在主线程……主动退出主线程的后果
回复 支持 反对

使用道具 举报

发表于 2010-4-27 08:27:29 | 显示全部楼层
不知道你加在哪里?
PS:ExitThread是用在线程中主动退出吧?
如果你放在主线程……主动退出主线程的后果
msflexgrid 发表于 2010-4-26 23:22


哦,试了一下,果然是这样,看来是我搞错了!
回复 支持 反对

使用道具 举报

发表于 2010-4-27 14:00:15 | 显示全部楼层
34# msflexgrid

不会是LCase吧……

不过我决定还是单线程稳定,因为我不想处理同步问题……所以现在我还在用我那个Single Thread Wrapper……
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2010-4-27 16:27:30 | 显示全部楼层
哦,原来这样搞啊
回复 支持 反对

使用道具 举报

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

不会是LCase吧……

不过我决定还是单线程稳定,因为我不想处理同步问题……所以现在我还在用我那个Single Thread Wrapper……
acme_pjz 发表于 2010-4-27 14:00

字符串的都可以用了mid,lcase,right,left...,还有VB的窗体之类……form1,text1...
不能用的有文件操作类(在别的贴 说过:FreeFile,Open,Get,Put,Eof...)
不知道redim byTest(1234) 数组能不能用?还没试……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2022-7-3 16:32

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