Mega Code Archive

 
Categories / VB.Net Tutorial / Thread
 

Use SyncLock for shared resources

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