查看: 415  |  回复: 0
  VB6 稳定不崩溃可以在IDE调试的多线程,我花了一个月才搞定的,太重要了
楼主
发表于 2025年1月12日 00:51

VB6比起其他编程软件最大的优势可能就是不但能解释(方便调试),还能编译(和C++的速度差距不大)。

但是网上有一些多线程的解决方案(包括真正能提速到几分之一的DLL,但是多点几次就崩溃或内存溢出),不太稳定。

我需要用稳定不出错的多线程ActiveX解决方案:速度和单线程差距不大,不堵塞主线程,特别适合网络服务(比如Winsock接收信息写内存,然后多线程处理共享内存而不出错,无需使用互斥锁等复杂方式)。

这个难题被我解决了,可以在IDE中以单线程方式自动运行,在EXE模式中自动使用多线程方式。

也就是说,一个代码不管是解释方式还是编译方式,都能运作,效果看起来一样,先看来了4个线程的图(虽然在代码中是按1到4的顺序,但是运行起来是按CPU随机分配的方式运行):

就算主线程弹出Msgbox,后面的子线程还在运行。还能和DLL里面的类交换数据,比如停止多线程。

全部是源码,不用别人DLL。分为2部分:

具体代码只能由VIP查看,请升级

clsMTHread.cls 代码如下:

具体代码只能由VIP查看,请升级
具体代码只能由VIP查看,请升级

内容:

具体代码只能由VIP查看,请升级

这样,我们就搞定了一半了。继续:

具体代码只能由VIP查看,请升级

这样一个demo就做好了,Form1.frm里面的代码如下:

具体代码只能由VIP查看,请升级

再去添加一个 modTimeStampToStr.cls 看精确的时间,见源码。

上方大量注释是可以打开的,可以测试不同情况。

关键点又来了:

具体代码只能由VIP查看,请升级

不管你是在IDE和EXE中,都可以看到多线程同时工作。还可以随时停止和启动,超级稳定。

源码下载

您需要登录后才可以回帖 登录 | 立即注册
【本版规则】请勿发表违反国家法律的内容,否则会被冻结账号和删贴。
用户名: 立即注册
密码:
2020-2025 MaNongKu.com