ib "kernel32" (ByVal hThread As Long) As Long
''''挂起线程API
Private Declare Function SuspendThread Lib "kernel32" (ByVal hThread As Long) As Long
Private Const CREATE_SUSPENDED = &H4 ''''线程挂起常量
''''自定义线程结构类型
Private Type udtThread
Handle As Long
Enabled As Boolean
End Type
Private meTheard As udtThread
''''初始化线程
Public Sub Initialize(ByVal LongPointFunction As Long)
Dim LongStackSize As Long, LongCreationFlags As Long, LpthreadId As Long, LongNull As Long
On Error Resume Next
LongNull = 0
LongStackSize = 0
LongCreationFlags = CREATE_SUSPENDED ''''创建线程后先挂起,由程序激活线程
''''创建线程并返线程句柄
meTheard.Handle = CreateThread(LongNull, LongStackSize, ByVal LongPointFunction, LongNull, LongCreationFlags, LpthreadId)
If meTheard.Handle = LongNull Then
MsgBox "线程创建失败!", 48, "错误"
End If
End Sub
''''获取线程是否激活属性
Public Property Get ThreadEnabled() As Boolean
On Error Resume Next
Enabled = meTheard.Enabled
End Property
''''设置线程是否激活属性
Public Property Let ThreadEnabled(ByVal Newvalue As Boolean)
On Error Resume Next
''''若激活线程(Newvalue为真)设为TRUE且此线程原来没有激活时激活此线程
If Newvalue And (Not meTheard.Enabled) Then
ResumeThread meTheard.Handle
meTheard.Enabled = True
Else   上一页 [1] [2] [3] [4] [5] 下一页 没有相关教程
|