Imports System.Threading
Public Class Tester
Shared WithEvents oSquare As SquareClass = New SquareClass()
Public Shared Sub Main
Dim t As Thread
t = New Thread(AddressOf oSquare.CalcSquare)
oSquare.Value = 3
t.Start()
End Sub
Shared Sub SquareEventHandler(ByVal Square As Double) Handles oSquare.ThreadComplete
Console.WriteLine(Square)
End Sub
End Class
Public Class SquareClass
Public Value As Double
Public Square As Double
Public Event ThreadComplete(ByVal Square As Double)
Public Sub CalcSquare()
Square = Value * Value
RaiseEvent ThreadComplete(Square)
End Sub
Public Sub SyncCalcSquare()
SyncLock GetType(SquareClass)
Square = Value * Value
MsgBox(Square)
End SyncLock
End Sub
End Class