以前お送りした「デザインパターンを学ぶ~その18:Sinbletonパターン(1)~」ですが、マルチスレッドで実行する際のVBのコードが間違っておりました。謹んでお詫び申し上げます。
m(_ _)m
正しいコードは以下の通りとなります。(元文書はすでに修正してあります。)
Public Class Program
Public Shared Sub Main()
Dim loggerHelper1 As New LoggerHelper()
Dim thread1 = New Thread(AddressOf loggerHelper1.SetLogger)
Dim loggerHelper2 As New LoggerHelper()
Dim thread2 = New Thread(AddressOf loggerHelper2.SetLogger)
thread1.Start()
thread2.Start()
While (loggerHelper1.Logger Is Nothing OrElse loggerHelper2.Logger Is Nothing)
Thread.Sleep(10)
End While
Console.WriteLine(loggerHelper1.Logger.LogPath)
Console.WriteLine(loggerHelper2.Logger.LogPath)
Console.ReadKey()
End Sub
Public Class LoggerHelper
Public Logger As SingletonLogger
Public Sub SetLogger()
Me.Logger = SingletonLogger.Instance
End Sub
End Class
End Class
なお、近日中にSingletonパターン(2)をお送りしますので、今しばらくお待ちください。