static void Main(string[] args)
        {
            Caja    caja1   = new Caja();
            Caja    caja2   = new Caja();
            Negocio negocio = new Negocio(caja1, caja2);

            negocio.Clientes.Add("Marcos");
            negocio.Clientes.Add("Jose");
            negocio.Clientes.Add("Cristina");
            negocio.Clientes.Add("Romina");
            negocio.Clientes.Add("Carlos");
            negocio.Clientes.Add("Roman");
            negocio.Clientes.Add("Josefina");


            Thread hiloNegocio = new Thread(negocio.AsignarCaja);
            Thread hiloCaja1   = new Thread(negocio.Caja1.AtenderClientes);
            Thread hiloCaja2   = new Thread(negocio.Caja2.AtenderClientes);

            hiloCaja1.Name = "Caja 1";
            hiloCaja2.Name = "Caja 2";

            hiloNegocio.Start();
            hiloNegocio.Join();
            hiloCaja1.Start();
            hiloCaja1.Join(); // atiende primero la caja 1 y desp pasa a la siguiente en vez de hacer las dos a la vez
            hiloCaja2.Start();

            Console.ReadKey();
        }
Ejemplo n.º 2
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.º 3
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();
        }
Ejemplo n.º 4
0
 public Negocio(Caja caja1, Caja caja2)
 {
     this.caja1    = caja1;
     this.caja2    = caja2;
     this.clientes = new List <string>();
 }