Skip to content
Snippets Groups Projects
Select Git revision
  • c429c1eb50956c28229a95f589403b5ca249053d
  • main default protected
  • ghebremm-main-patch-40518
3 results

Program.cs

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    Program.cs 1.72 KiB
    using System;
    using System.Collections.Generic;
    using System.Net.Mime;
    using System.Runtime.CompilerServices;
    using System.Runtime.Remoting.Messaging;
    using System.Threading;
    
    namespace ConsoleApplication1 
    {
    
        public static
    
        class Program
        {
            public static void Main(string[] args)
            {
    
                int nrProd = 0;
                int nrCons = 0;
                
                //Parse received program arguments to int
                try
                {
                    nrProd = int.Parse(args[0]);
                    nrCons = int.Parse(args[1]);
                }
                catch (FormatException ignored)
                {
                    Console.WriteLine("Please provide two positive integers as program arguments");
                    Environment.Exit(1);
                }
    
    
    
    
                Buffer buffer = new Buffer();
    
                //Create n new producers where n = received argument
                for(int i = 0; i < nrProd; i++)
                {
                    //create new Producer object
                    Producer p = new Producer(buffer);
                    
                    //create new Thread and start it
                    Thread newThread = new Thread(p.Produce);
                    newThread.Start();
                }
    
                //Create n new consumers where n = received argument
                for (int i = 0; i < nrCons; i++)
                {
                    //create new Consumer object
                    Consumer c = new Consumer(buffer);
    
                    //create new Thread and start it
                    Thread newThread = new Thread(c.Consume);
                    newThread.Start();
                    
                }
            }
    /*
            static void setAsleep()
            {
                Thread.Sleep(8000);
                Consumer.wakeUp();
            }
    */       
        }
    }