启动N个线程

VB.NET · 2023-05-01 · 198 人浏览

以下是 VB.NET 中使用 System.Threading 命名空间启动 10 个线程并调用函数的示例代码:

Imports System.Threading

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        ' 创建一个包含 10 个线程的 Thread 数组
        Dim threads(9) As Thread
        For i As Integer = 0 To 9
            threads(i) = New Thread(AddressOf DoWork)
            threads(i).Start(i)
        Next

    End Sub

    Private Sub DoWork(ByVal data As Object)
        Dim id As Integer = CType(data, Integer)
        Console.WriteLine("线程 {0} 正在执行...", id)
        Threading.Thread.Sleep(1000)
        Console.WriteLine("线程 {0} 执行完毕。", id)
    End Sub

End Class

在此示例中,我们创建了一个包含 10 个线程的 Thread 数组,并使用 New Thread 方法创建每个线程。然后,我们使用 Start 方法启动每个线程,并将一个整数作为参数传递给函数 DoWork。最后,我们在 DoWork 函数中读取该参数,并执行相应的操作。

请注意,在此示例中,我们使用了 AddressOf 运算符来获取函数 DoWork 的地址,并将其作为参数传递给 New Thread 方法。如果您需要在方法之间传递参数或共享状态,请考虑使用闭包或其他适当的技术来实现。同时,也要注意并发操作可能会引起竞态条件和死锁等问题,需要根据具体情况进行处理。