Producer/consumer : Producer Consumer : Thread C# Examples


C# Examples » Thread » Producer Consumer »

 

Producer/consumer









    
using  System;
using  System.Collections.Generic;
using  System.Diagnostics;
using  System.IO;
using  System.Reflection;
using  System.Runtime;
using  System.Runtime.CompilerServices;
using  System.Security;
using  System.Text;
using  System.Threading;

public  class  MainClass
{
        private  static  Queue<string>  sharedQueue  =  new  Queue<string>();        
        public  static  void  Main()
        {
                Thread  t1  =  new  Thread(Producer);
                Thread  t2  =  new  Thread(Consumer);
                t1.Start();
                t2.Start();

                //  Join  on  them:
                t1.Join();
                t2.Join();
        }
        private  static  void  Producer()
        {
                for  (int  i  =  0;  i  <  2;  i++)
                {
                        string  item  =  "Item#"  +  i;
                        lock  (sharedQueue)
                        {
                                sharedQueue.Enqueue(item);
                                Monitor.Pulse(sharedQueue);
                        }
                }
        }

        private  static  void  Consumer()
        {
                for  (int  i  =  0;  i  <  2;  i++)
                {
                        string  item  =  null;
                        lock  (sharedQueue)
                        {
                                while  (sharedQueue.Count  ==  0)
                                        Monitor.Wait(sharedQueue);
                                item  =  sharedQueue.Dequeue();
                        }

                        Console.WriteLine("Processing  item:  {0}",  item);
                }
        }
}
    
   
  
   



Output

Processing item: Item#0
Processing item: Item#1


HTML code for linking to this page:

Follow Navioo On Twitter

C# Examples

 Navioo Thread
» Producer Consumer