分类
笔记

VB.Net 使用多线程托管来跨线程操作控件

如果你做的是GUI程序,那么多线程是无法避免的。(除非你想在一个操作执行的过程中界面卡死。。。)

那么如何在另外一个线程中操作窗体控件呢?函数参数又如何在线程和托管中传递?下面的一段代码可以解答所有的问题:

Imports System.Threading

Delegate Sub 托管器(原参数1, 原参数2)

Class Main

    Sub 托管函数()
        Me.Invoke(New 托管器(AddressOf 原函数), 原参数1, 原参数2)
    End Sub

    '这个是用于启动线程的函数
    Sub Main()
        Dim 新线程 As New System.Threading.Thread(AddressOf 托管函数)
        新线程.Start()
    End Sub

    '这个是用来放在新线程里执行的函数
    Sub 原函数(原参数1, 原参数2)
        '......
    End Sub

End Class

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注