注册 登录
编程论坛 VB6论坛

最近在想多线程的事情

风吹过b 发布于 2015-07-30 17:47, 827 次点击
参考了 嗷嗷叫的老马 的文章,
那里提供了一个示例,使用 VB6 如何来制作多线程的程序。
有几点体会:
1、线程必须是放到一个 窗体上的。
2、线程的主函数必须不能放到初始化代码中由代码调用。
   可以由人工按钮调用,但在初始化代码调用 按钮事件,无效。
   可以由定时器事件调用。
3、线程的窗体必须显示才有用,如果不显示,定时器不会工作,也就无法触发调用。
   但可以 先显示窗体,立即隐藏窗体,虽然屏幕上会闪一下。也可以把窗体放到屏幕之外去。

最后还有一个问题,数据交换。
介绍里说过了,全局变量不起作用,我的理解就是全局变量不会复制到各个线程中去,线程中止时,也不会从线程中传回来。
需要手动传出传回。我想到的就是使用事件传回。事件中传递大量的数据怎么样,真是心中无底。还没去测试过。
但传入还没想到,可能在初始化线程时,先传入参数,不知可行不。

[ 本帖最后由 风吹过b 于 2015-7-30 17:56 编辑 ]
4 回复
#2
wmf20142015-07-30 18:00
vb6做多线程真心头痛。阻塞、信号灯、同步等问题写着写着就来了,很多时候程序退出了,你开的线程还在运行。net比较方便写多线程,一个对象即可启动多线程。
#3
风吹过b2015-07-30 18:05
郁闷,引入定时器后,导致 程序无法正常退出,郁闷之中。
#4
风吹过b2015-07-30 18:06
是啊, VB 内置控件基本上都是 线程非安全控件。

好难把握,估计还是没什么用。
算了。
#5
msd94622015-08-12 03:07
老马的多线程也还在完善当中。
我看有的人搞多线程用VC,因为VC可以和VB传递参数,互相调用的。
1