Mega Code Archive

 
Categories / VB.Net / Thread
 

Thread Wait and PulseAll

Imports System Imports System.Threading Public Class MainClass   Private Money As Integer   Private Week As Integer = 1      Public Shared Sub Main()     Dim mClass As MainClass  =  New MainClass()         Dim aThreadStart As New ThreadStart(AddressOf mClass.Produce)     Dim bThreadStart As New ThreadStart(AddressOf mClass.Consume)     Dim aThread As New Thread(aThreadStart)     Dim bThread As New Thread(bThreadStart)     aThread.Name = "Produce"     aThread.Start()     bThread.Name = "Consume"     bThread.Start()   End Sub      Public Sub Produce()     Thread.Sleep(500)     Do       Monitor.Enter(me)       Do While Money > 0         Monitor.Wait(Me)       Loop       Money = 1000       Monitor.PulseAll(Me)       Monitor.Exit(Me)     Loop   End Sub   Public Sub Consume()     Console.WriteLine("AM in consume thread")     Do       Monitor.Enter(Me)       Do While Money = 0         Monitor.Wait(Me)       Loop       Console.WriteLine("Dear parent I just spent all your money in week " & Week)       Week += 1       If Week = 21 * 52 Then System.Environment.Exit(0)       Money = 0       Monitor.PulseAll(Me)       Monitor.Exit(Me)     Loop   End Sub End Class