Option Explicit
Public Declare Function CreateThread Lib "kernel32" _
(ByVal lpThreadAttributes As Long, _
ByVal dwStackSize As Long, _
ByVal lpStartAddress As Any, _
ByRef lpParameter As Any, _
ByVal dwCreationFlags As Long, _
ByRef lpThreadId As Long) As Long
Public Declare Function CreateThread_ByValParam Lib "kernel32" _
Alias "CreateThread" _
(ByVal lpThreadAttributes As Long, _
ByVal dwStackSize As Long, _
ByVal lpStartAddress As Any, _
ByVal lpParameter As Long, _
ByVal dwCreationFlags As Long, _
ByRef lpThreadId As Long) As Long
' So you can determine which thread the code is executing in.
Public Declare Function GetCurrentThreadId Lib "kernel32" () As Long
' This is the type that is passed to DaThreadFunc so you can do the by
' reference demonstration.
Type PARAM_TYPE
lValue As Long
End Type
' The function used to show a pass by reference.
Function DaThreadFunc(ByRef lpParam As PARAM_TYPE) As Long
Dim szStr As String
szStr = "From DaThreadFunc - Parameter = " & _
CStr(lpParam.lValue) & vbNewLine & _
"Thread ID: " & CStr(GetCurrentThreadId)
MsgBox szStr, , "Function Cool!"
' Just to make the return value different, I return -2.
DaThreadFunc = -2
End Function
' The subroutine to show pass by value.
' By the way, I noticed that subs always return 0.
Sub DaThreadSub(ByVal lpVoid As Long)
Dim szStr As String
szStr = "From DaThreadSub - Parameter = " & _
CStr(lpVoid) & vbNewLine & _
"Thread ID: " & CStr(GetCurrentThreadId)
MsgBox szStr, , "Sub Cool!"
End Sub
Sub Main()
Dim lRet As Long
Dim lThreadID As Long
Dim stParam As PARAM_TYPE
Dim szStr As String
lThreadID = 0
' Do the call to CreateThread with a by reference parameter.
stParam.lValue = -1
lRet = CreateThread(0, _
0, _
AddressOf DaThreadFunc, _
stParam, _
0, _
lThreadID)
' Do the call to CreateThread with a by value parameter.
lRet = CreateThread_ByValParam(0, _
0, _
AddressOf DaThreadSub, _
-2, _
0, _
lThreadID)
szStr = "From Da Main Thread" & vbNewLine & _
"Thread ID: " & CStr(GetCurrentThreadId)
MsgBox szStr
End Sub
分享到:
相关推荐
VB多线程实例VB多线程实例VB多线程实例VB多线程实例
VB多线程实例 VB多线程实例 VB多线程实例
vb多线程控件能实现简单的多线程,还是有很多限制
实用的真正的VB多线程处理的例子,源代码 我本人已经测试过了,没有任何问题!!,请不要随便枉下评论~~!!! (内部有两个工程,测试的时候需要全部运行!!) 在评论前,请先仔细的分析一下代码,~根据自己的需要在做适当修改~. ...
VB多线程组件VB多线程组件VB多线程组件VB多线程组件VB多线程组件VB多线程组件VB多线程组件VB多线程组件VB多线程组件VB多线程组件
VB 多线程源码
安全的多线程操作,是VB多线程的不错的选择
vb 多线程演示示例代码,例子机制很全面,兼容性比较强,所以下载看看吧
msdn 上面的vb 多线程
VB多线程控件(Thread Factory)破解版,PATH时关闭杀毒软件
通过 thread 类直接创建线程的 vb实例
利用VB多线程. 解决VB没有多线程的问题利用VB多线程. 解决VB没有多线程的问题利用VB多线程. 解决VB没有多线程的问题
VB 多线程。 标准类模块封装,用户透明调用。 测试稳定,可作为初学者VB多线程实例教程
VB多线程编程实例,如演示截图所示,程序实现两条线程,左边是一根由上到下的线,右边是一个动画图标,两者互不影响,各自工作,每个线程能进行相关设置。
一款不错的VB多线程端口扫描源码,希望大家喜欢
一个来自国外的Vb多线程控件及测试Demo源代码,代码很简单,IDE下运行稳定,vba下使用OK,编译后就不说了,推荐这个看看,实现的方法我看不懂,看代码的简洁程度,应该是脑洞大开之作,作者本人说某些情况也会Crash...
VB 多线程 控制台类 及源代码 实例 【荐】 使用VB编写多线程的控制台类及源代码实例,写的不错,推荐给VB的朋友们参考。本多线程运行很稳定,IDE中运行很多次无一次引起不崩溃,数组(0)为 初始化,创建线程 1 - N ...
VB 实现多线程并 稳定性还是可以的 适合初学多线程的人参考 代码写的不怎么好看 高手勿喷
多线程,vb多线程例程,自动创建及结束线程!
高手写的堪称精品 VB多线程控制台 源程序代码 一个控制台类和一个 多线程类,而且调用方便,是多线程的,运行性能超级稳定,SP3 测试、虚拟机测试均无崩溃现象,可正常退出,暂停、继续。这个多线程运行 绝对稳定 ...