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(); }
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(); }
/* * * 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(); }
public Negocio(Caja caja1, Caja caja2) { this.caja1 = caja1; this.caja2 = caja2; this.clientes = new List <string>(); }