VB中的多线程

 VB中实现多线程可用如下两种方法:

 

方法一:创建本身支持多线程的程序。

1、创建一个Activex EXE工程,工程名为ThreadPro,在工程属性中,线程模型(Thread model)选择Thread per object,启动方式(Start mode)选择Standalone,启动对象(Start object)选择Sub Main。

2、创建一个Form:frmWork,放一个Timer:tmrWork,工作线程将工作在这个Timer的定时器函数中。注意该窗体的Visible属性为False。

3、创建一个工作线程类,比如clsMT,其Instancing设置为MultiUse。通过CreateObject创建的clsMT对象拥有一个独立的线程。clsMT的代码如下:

 

 

4、创建一个主界面窗口frmMain,添加一个按钮cmdStart和一个文本框Text1,该窗体的代码如下:

 

 

5、Activex EXE运行需要Sub Main函数。创建一个标准模块basMain,添加Sub Main函数,这里要注意一点每次CreateObject创建类实例都会调用Main函数,因此要写代码避免主窗体的重复创建,basMain模块的代码如下。现在知道上一步骤中的Quit干什么用的了吧。

 

 

6、代码写好,可以运行看效果了。注意在调试状态下是看不到多线程效果的,需要编译为exe后独立运行程序才行。按下cmdStart按钮后,主界面应该不会阻塞,这就是多线程了。(VC中再简单不过的事情在VB中这么费劲!!!)

 

 

方法二:创建执行线程模块。

1、创建一个Activex EXE工程,工程名为ThreadModule,和“方法一”一样在工程属性中,线程模型(Thread model)选择Thread per object,不同的是启动方式(Start mode)选择Activex Compoment,启动对象(Start object)选择None。

2、创建一个Form:frmWork,放一个Timer:tmrWork,工作线程将工作在这个Timer的定时器函数中。注意该窗体的Visible属性为False。

3、创建一个工作线程类,比如clsMT,其Instancing设置为MultiUse。clsMT的代码如下:

 

 

4、编译工程,生成ThreadModule.exe。线程模块做好了,别的工程需要多线程时可以引用该模块,具体方法是Project->References,选择ThreadModule,如果列表中没有请单击Browse在文件夹中查找ThreadModule.exe。假设工程有窗体frmData,该窗体需要一个线程,则可以按如下代码启动线程:

 

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值