Thread VB.Net Tutorial

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
9