マルチスレッドの使い方 備忘録
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()
が使用されていますが、これによってメインスレッドは thread1
と thread2
が終了するまで待機します。