Two threads with SyncLock
Imports System Imports System.Drawing Imports System.Threading Imports System.Windows.Forms Imports System.IO public class MainClass Shared counter As Integer Shared locker As Object = New Object() Shared Sub Main() Dim aThread As Thread = New Thread(AddressOf Calculate) Dim bThread As Thread = New Thread(AddressOf Calculate) aThread.Start() bThread.Start() End Sub Shared Sub Calculate() Console.WriteLine("Thread " & Thread.CurrentThread.GetHashCode & " woke up. Counter=" & counter) SyncLock locker Console.WriteLine("In Locker") Console.WriteLine("1") Console.WriteLine("2") Dim i As Integer = 0 Dim j As Integer = 0 For i = 0 To 10000 For j = 0 To 10000 Next j Next i Console.WriteLine("3") Console.WriteLine("4") Console.WriteLine("5") End SyncLock Console.WriteLine("Out Locker") Console.WriteLine("Thread " & Thread.CurrentThread.GetHashCode & " woke up. Counter=" & counter) End Sub End Class
1. | Two threads without SyncLock | ||
2. | Thread without Synchronizing | ||
3. | Synchronize Thread Demo |