Use SyncLock for shared resources : SyncLock « 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








23.8.SyncLock
23.8.1.SyncLock
23.8.2.Producer and consumer with SyncLock
23.8.3.Use SyncLock for shared resources
23.8.4.SyncLock block