`

VB多线程

阅读更多

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 多线程 实例(thread 类创建)

    在VB(Visual Basic)编程中,多线程技术允许程序同时执行...通过理解和实践这些VB多线程的知识点,你可以创建出高效、稳定的多线程应用程序。在实际项目中,根据需求灵活运用这些技术,可以提升程序的性能和用户体验。

    vb多线程控件能实现简单的多线程

    VB多线程控件是开发者用来实现这一功能的一种工具,但正如标题和描述所指出的,虽然可以实现简单的多线程,但确实存在一些限制和挑战。 首先,我们要理解什么是线程。线程是程序执行的基本单元,每个线程都有自己的...

    VB 多线程实例

    下面将详细介绍VB多线程的基本概念、创建线程的方法以及相关的知识点。 1. **线程基本概念**: - **进程与线程**:进程是操作系统资源分配的基本单位,而线程是执行的基本单位。一个进程可以包含多个线程,线程...

    vb多线程演示代码

    本压缩包包含的“vb多线程演示代码”提供了一系列示例,旨在帮助开发者理解和应用VB中的多线程。 一、线程基础 线程是操作系统分配CPU时间的基本单元。一个进程可以有多个线程,每个线程独立地执行任务。在VB中,...

    VB多线程操作

    在标题"VB多线程操作"中,我们聚焦的是如何在VB中实现和管理多线程。 多线程在现代软件开发中的重要性不言而喻,尤其是在处理大数据、网络通信或UI更新等耗时操作时。VB支持通过Microsoft.VisualBasic.Threading...

    VB 多线程 实例 源码

    这个压缩包中的"VB多线程实例"显然提供了关于如何在VB中实现多线程功能的源代码示例。 在VB中实现多线程,主要依赖于System.Threading命名空间中的Thread类。下面我们将深入探讨多线程的基本概念以及如何在VB中使用...

    VB 多线程源码

    下面将详细探讨VB多线程的相关知识点。 1. **线程的概念**: - 线程是操作系统分配CPU时间的基本单元,一个进程可以包含一个或多个线程。在单线程应用程序中,只有一个线程执行代码;而在多线程应用中,有多个线程...

    VB 多线程例子学习

    VB多线程的例子学习是开发者提升技能的重要途径,尤其对于处理长时间运行的操作,如网络通信、大数据处理、用户界面更新等场景,多线程显得尤为重要。 在VB中实现多线程,可以借助两种主要的方法:一是通过...

    真正的VB多线程处理实例

    实用的真正的VB多线程处理的例子,源代码 我本人已经测试过了,没有任何问题!!,请不要随便枉下评论~~!!! (内部有两个工程,测试的时候需要全部运行!!) 在评论前,请先仔细的分析一下代码,~根据自己的需要在做适当修改~. ...

    VB多线程组件,实现稳定多线程调用

    标题提到的“VB多线程组件”是一种专门设计用于VB环境下的多线程解决方案,它允许开发者在多个独立的工作线程中运行代码,从而实现并行处理,提高程序响应速度。 在传统的VB应用程序中,由于UI(用户界面)与后台...

    VB多线程工程

    综上所述,VB多线程工程是一个学习和实践多线程编程的好起点,它可以帮助开发者理解和掌握如何在VB.NET环境中有效地利用多线程,提升软件性能,同时避免并发问题。通过Mutithreading这个压缩包中的文件,初学者可以...

    利用VB多线程. 解决VB没有多线程的问题

    `源码中国.url`可能是一个指向源码中国的链接,你可以在这里找到更多VB多线程的示例代码和讨论;`vbthread`可能是一个包含VB多线程代码的文件,可以作为实践学习的参考。 总之,尽管VB原生不支持多线程,但我们可以...

    堪称精品的VB多线程控制台源程序代码.rar_vb 多线程_vb6_vb6多线程_vb多线程_多线程

    这个"堪称精品的VB多线程控制台源程序代码.rar"提供了一个示例,展示了如何在VB6中创建并管理多线程,这对于理解和应用多线程技术具有很高的参考价值。 多线程是现代软件开发中的一个重要概念,它允许程序同时执行...

    VB 多线程模块案例

    在VB(Visual Basic)编程环境中,多线程是一种高级编程技术,它允许程序同时执行多个独立的任务,从而提高应用程序的效率和响应性。本案例"VB 多线程模块"着重于展示如何在VB中创建和管理多线程,以实现并发操作。 ...

    msdn 上面的vb 多线程

    msdn 上面的vb 多线程

    VB多线程控件(Thread Factory) 破解版

    VB多线程控件(Thread Factory)破解版,PATH时关闭杀毒软件

    duoxiancheng.zip_vb 多线程_vb多线程

    标题中的"duoxiancheng.zip_vb 多线程_vb多线程"表明这是一个关于VB实现多线程的示例或库,可能包含代码和说明文档。 在描述中提到的“多线程,vb多线程例程,自动创建及结束线程!”这部分,我们可以理解为这个...

    VB多线程组件VB多线程组件

    VB多线程组件VB多线程组件VB多线程组件VB多线程组件VB多线程组件VB多线程组件VB多线程组件VB多线程组件VB多线程组件VB多线程组件

    关于vb多线程下载文件的例子

    在VB(Visual Basic)编程环境中,多线程技术是一种重要的编程模式,它允许应用程序同时...通过深入理解和实践这个VB多线程下载文件的例子,你可以更好地掌握VB中的多线程编程,为开发高效、响应迅速的应用奠定基础。

    vb多线程文档

    在探讨“vb多线程文档”这一主题时,我们深入解析了Visual Basic(简称VB)在多线程处理上的核心概念和技术细节。标题与描述强调了解决VB开发中多线程难题的重要性,以下是对该主题的详尽分析。 ### VB多线程基础 ...

Global site tag (gtag.js) - Google Analytics