VB.Net/Thread/Thread Wait
Thread Wait and PulseAll
<source lang="vbnet"> 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
</source>