模块中的代码:
Option Explicit
'时间计数API
Private Declare Function GetTickCount Lib "kernel32" () As Long
'声明cls_thread类的对象变量
Public myThreadleft As New cls_thread, myThreadright As New cls_thread, myThreadbottom As New cls_thread
Sub Main()
Load Form1
Form1.Show
End Sub
Public Sub Fillleft()
Static Bkgcolor As Long
Dim LongTick As Long, Longcounter As Long
On Error Resume Next
For Longcounter = 0 To 3000
DoEvents
Bkgcolor = Longcounter Mod 256
Form1.Picture1.BackColor = RGB(Bkgcolor, 0, 0)
LongTick = GetTickCount
While GetTickCount - LongTick < 10 '延时10毫秒,下同
Wend
Next
Set myThreadleft = Nothing '如果循环结束则终止当前线程运行,下同
End Sub
Public Sub Fillright()
Static Bkgcolor As Long
Dim LongTickValue As Long, Longcounter As Long
On Error Resume Next
For Longcounter = 0 To 3000
DoEvents
Bkgcolor = Longcounter Mod 256
Form1.Picture2.BackColor = RGB(0, Bkgcolor, 0)
LongTickValue = GetTickCount
While GetTickCount - LongTickValue < 10
Wend
Next
Set myThreadright = Nothing
End Sub
Public Sub Fillbottom()
Static Bkgcolor As Long
Dim LongTick As Long, Longcounter As Long
On Error Resume Next
For Longcounter = 0 To 3000
DoEvents
Bkgcolor = Longcounter Mod 256
Form1.Picture3.BackColor = RGB(0, 0, Bkgcolor)
LongTick = GetTickCount
While GetTickCount - LongTick < 10
Wend
Next
Set myThreadright = Nothing
End Sub
类模块中的代码:
'功能:创建多线程类,用于初始化线程。 类名:cls_Thread
'参数:LongPointFunction 用于接收主调过程传递过来的函数地址值
'调用方法:1.声明线程类对象变量 Dim mythread as cls_Thread
' 2.调用形式:With mythread
' .Initialize AddressOf 自定义过程或函数名 '(初始化线程) .
'