Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            Caja    caja1   = new Caja();
            Caja    caja2   = new Caja();
            Negocio negocio = new Negocio(caja1, caja2);

            negocio.Clientes.Add("Matias");
            negocio.Clientes.Add("Emiliano");
            negocio.Clientes.Add("Marcos");
            negocio.Clientes.Add("Julian");
            negocio.Clientes.Add("Analia");
            negocio.Clientes.Add("Isabella");
            negocio.Clientes.Add("Carla");
            negocio.Clientes.Add("Juan");
            negocio.Clientes.Add("Camila");
            negocio.Clientes.Add("Jeronimo");
            negocio.Clientes.Add("Lucas");
            negocio.Clientes.Add("Natalia");
            negocio.Clientes.Add("Nahuel");
            negocio.Clientes.Add("Ileana");


            Thread asignaCajas  = new Thread(negocio.AsingnarCaja);
            Thread atenderCaja1 = new Thread(negocio.Caja1.AtenderClientes);
            Thread atenderCaja2 = new Thread(negocio.Caja2.AtenderClientes);

            atenderCaja1.Name = "Caja 1";
            atenderCaja2.Name = "Caja 2";

            asignaCajas.Start();
            asignaCajas.Join();
            atenderCaja1.Start();
            Thread.Sleep(1500);
            atenderCaja2.Start();

            Console.ReadKey();
        }
Ejemplo n.º 2
0
        /*
         *
         *  Los threads destinados a atender a los clientes deberán tener
         *  en su propiedad “Name” el nombre de la caja que está atendiendo.
         * c. Se deberán iniciar los 3 threads uno a continuación del otro.
         * d. Utilizar el método Join del objeto de la clase Thread para asegurar
         *  que se hayan asignado todos los clientes a alguna caja antes de comenzar a atender
         */
        static void Main(string[] args)
        {
            Caja caja1 = new Caja();
            Caja caja2 = new Caja();

            Negocio negocio = new Negocio(caja1, caja2);

            Thread hiloAsignarCajaACliente = new Thread(new ThreadStart(negocio.AsignarCaja));

            Thread hiloPrimerCaja = new Thread(new ThreadStart(caja1.AtenderCliente));

            hiloPrimerCaja.Name = "caja1";
            Thread hiloSegundaCaja = new Thread(new ThreadStart(caja2.AtenderCliente));

            hiloSegundaCaja.Name = "caja2";

            hiloAsignarCajaACliente.Start();
            Thread.Sleep(5000);
            hiloPrimerCaja.Start();
            hiloSegundaCaja.Start();


            Console.ReadKey();
        }