//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
        }