Thread Wait and PulseAll : Thread Wait « Thread « VB.Net

Home
VB.Net
1.2D
2.Application
3.Class
4.Data Structure
5.Data Types
6.Database ADO.net
7.Date Time
8.Development
9.Event
10.File Directory
11.Generics
12.GUI
13.Internationalization I18N
14.Language Basics
15.LINQ
16.Network Remote
17.Reflection
18.Security
19.Thread
20.Windows Presentation Foundation
21.Windows System
22.XML
23.XML LINQ
VB.Net Tutorial
VB.Net by API
VB.Net » Thread » Thread WaitScreenshots 
Thread Wait and PulseAll
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



           
       
Related examples in the same category
w__w__w__._j__ava_2___s.___c_o_m | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.