//Core important public void PrincipalInit() { llenarLista(); //inicio while tentativo for (j = 0; j < 5 - Flistos&& List_Listos.Count <= 5 ; j++)//listos { temp++; List_Listos.Add(Lis_Monedas.ElementAt(0)); Lis_Monedas.RemoveAt(0); } Flistos = temp; temp = 0; List_Listos.OrderBy(o => o.Tiempo_servicio).ToList(); for (j = 0; j < List_Listos.Count && j < 5-bloqueados; j++)//listos { //List_Listos.Add(Lis_Monedas.ElementAt(0)); //Lis_Monedas.RemoveAt(0); Aux1Textbox = Aux1Textbox + "- " + List_Listos.ElementAt(j).Identificador + " " + List_Listos.ElementAt(j).TipoMoneda + "Tiempo: " + List_Listos.ElementAt(j).Tiempo_servicio + Environment.NewLine; textBoxListos.Text = Aux1Textbox; } Aux1Textbox = ""; for (j = 0; j < 5 - bloqueados; j++)//nuevos { Aux1Textbox = Aux1Textbox + Lis_Monedas.ElementAt(j).TipoMoneda + Environment.NewLine; textBoxNuevos.Text = Aux1Textbox; } Aux1Textbox = ""; //ejecucion Ejecutado = new Proceso(List_Listos.ElementAt(0)); List_Listos.RemoveAt(0); Flistos--; i = 0; for (x = 0; (x < Ejecutado.Tiempo_servicio && (ActionBlock == false && ActionEnd == false)); x++) //Core Important { System.Threading.Thread.Sleep(1000); textBoxEjecuta.Text = "id: " + Ejecutado.Identificador + Environment.NewLine + " " + Ejecutado.TipoMoneda + "Tiempo: " + Ejecutado.Tiempo_servicio + Environment.NewLine; i++; if (i == 2 && List_Bloqueados.Count!=0) { List_Listos.Add(List_Bloqueados.ElementAt(0)); List_Bloqueados.RemoveAt(0); i = 0; textBoxBloque.Text = ""; } } if (x == Ejecutado.Tiempo_servicio) { List_Terminados.Add(Ejecutado); ActionEnd = true; } Aux1Textbox = ""; if (ActionBlock) { List_Bloqueados.Add(Ejecutado); for (j = 0; j < List_Bloqueados.Count; j++)//listos { //List_Listos.Add(Lis_Monedas.ElementAt(0)); //Lis_Monedas.RemoveAt(0); Aux1Textbox = Aux1Textbox + "- " + List_Bloqueados.ElementAt(j).Identificador + " " + List_Bloqueados.ElementAt(j).TipoMoneda + "Tiempo: " + List_Bloqueados.ElementAt(j).Tiempo_servicio + Environment.NewLine; textBoxBloque.Text = Aux1Textbox; } bloqueados++; ActionBlock = false; } if (ActionEnd) { aux2term_textbox = textBoxTerminados.Text; aux2term_textbox = aux2term_textbox + "id: "+ Ejecutado.Identificador + " " + Ejecutado.TipoMoneda + Ejecutado.Tiempo_servicio + Environment.NewLine; textBoxTerminados.Text = aux2term_textbox; ActionEnd = false; } }
public Proceso(Proceso InObj ) { this.Identificador = InObj.Identificador; this.Tiempo_servicio = InObj.Tiempo_servicio; this.TipoMoneda = InObj.TipoMoneda; }
private void llenarLista() { int i; int Tipo; Proceso temp; Random rand = new Random(); for (i = 1; i <= NumMonedas; i++) {//aqui relleno monedas Tipo = rand.Next(1, 10); temp = new Proceso(); temp.Identificador = i; temp.Tiempo_servicio = rand.Next(1, 5); switch (Tipo) { case 1: //cola.push_back("peso"); //falta ver lo del objeto temp.TipoMoneda = "peso"; break; case 2: //cola.push_back("U.S. Dollar"); temp.TipoMoneda = "U.S. Dollar"; break; case 3: //cola.push_back("Euro"); temp.TipoMoneda = "Euro"; break; case 4: //cola.push_back("Yen"); temp.TipoMoneda = "Yen"; break; case 5: //cola.push_back("British Pound"); temp.TipoMoneda = "British Pound"; break; case 6: //cola.push_back("Swiss Franc"); temp.TipoMoneda = "Swiss Franc"; break; case 7: //cola.push_back("Canadian Dollar"); temp.TipoMoneda = "Canadian Dollar"; break; case 8: //cola.push_back("New Zealand Dollar"); temp.TipoMoneda = "New Zealand Dollar"; break; case 9: //cola.push_back("African Rand "); temp.TipoMoneda = "African Rand"; break; case 10: //cola.push_back("Indian rupee"); temp.TipoMoneda = "Indian rupee"; break; }//end switch //add to the list Lis_Monedas.Add(temp); }//end for }