VB マルチスレッド 基本1

マルチスレッドの使い方 備忘録

VB.NETでの基本的なマルチスレッド処理の例を示します。以下の例では、2つのスレッドがそれぞれ異なる処理を実行します。

Imports System.Threading

Module Module1
  ’ 1つ目のスレッドで実行される処理
  Sub Thread1Function()
     For i As Integer = 1 To 5
      Console.WriteLine(“Thread 1 – Step ” & i)
      Thread.Sleep(1000) ‘ 1秒待機
     Next
End Sub

‘ 2つ目のスレッドで実行される処理
Sub Thread2Function()
For i As Integer = 1 To 5
Console.WriteLine(“Thread 2 – Step ” & i)
Thread.Sleep(1500) ‘ 1.5秒待機
Next
End Sub

Sub Main()
‘ 1つ目のスレッドを作成して開始
Dim thread1 As New Thread(AddressOf Thread1Function)
thread1.Start()

‘ 2つ目のスレッドを作成して開始
Dim thread2 As New Thread(AddressOf Thread2Function)
thread2.Start()

‘ メインスレッドが待機して、スレッド1とスレッド2が終了するのを待つ
thread1.Join()
thread2.Join()

Console.WriteLine(“Main thread finished.”)
End Sub

End Module

マルチスレッド処理が完了するまで待つには、各スレッドの終了を待つために Join メソッドを使用します。先程の例でも既に thread1.Join()thread2.Join() が使用されていますが、これによってメインスレッドは thread1thread2 が終了するまで待機します。