VB使用API多线程程序.

'Original code at:- http://www.free2code.net/plugins/ar.../read.php?id=94
visual basic code:

Option Explicit
'Form level code.

'MultiThread versus DoEvents.

'Add a textbox and 4 command buttons to a form.

Private Declare Function CreateThread Lib "kernel32" (ByVal lpThreadAttributes As Any, _
ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, _
ByVal dwCreationFlags As Long, lpThreadID As Long) As Long
Private Declare Function TerminateThread Lib "kernel32" (ByVal hThread As Long, _
ByVal dwExitCode As Long) As Long
Private Sub Command1_Click()
id = CreateThread(ByVal 0&, ByVal 0&, AddressOf AddTextMultiThread, ByVal 0&, 0, id)
End Sub
Private Sub Command2_Click()
Call TerminateThread(id, ByVal 0&)
End Sub
Private Sub Command3_Click()
StopDo = True
AddTextDoEvents
End Sub
Private Sub Command4_Click()
StopDo = False
End Sub
Private Sub Form_Load()
Me.Height = 4545
Me.Width = 8925
Text1.Move 45, 45, 8700, 3525
Command1.Move 45, 3690, 1635, 375
Command1.Caption = "Start MultiThread"
Command2.Move 1845, 3690, 1635, 375
Command2.Caption = "Stop MultiThread"
Command3.Move 5310, 3690, 1635, 375
Command3.Caption = "Start DoEvents"
Command4.Move 7110, 3690, 1635, 375
Command4.Caption = "Stop DoEvents"
End Sub

visual basic code:

'Module level code.
Option Explicit
Public id As Long
Public StopDo As Boolean
Public Function AddTextMultiThread()
Do
Form1.Text1.SelText = "Adding to Text1 - "
Loop
End Function
Public Function AddTextDoEvents()
StopDo = True
Do While StopDo = True
Form1.Text1.SelText = "Adding to Text1 - "
DoEvents
Loop
End Function