Пример #1
0
        public void procesado()
        {
            int cont = 0;
            int sig = 0;
            int rest = cantidad / 3;
            int total, restante;
            int lote  = 1;
            int conto = 0;

            labelContador.Text   = sig.ToString();
            labelPendientes.Text = rest.ToString();
            List <Proceso> aux  = new List <Proceso>();
            List <Proceso> aux2 = new List <Proceso>();

            foreach (Proceso p in lista)
            {
                listBox1.Items.Add(p.getID() + "\t\t" + p.getTime() + "\t" + p.getTrans());
                aux.Add(p);
                cont++;
                if ((cont % 3) == 0 || cont == cantidad)
                {
                    while (aux.Count > 0)
                    {
                        Proceso n = aux.First <Proceso>();
                        labelNombre.Text = n.getName();
                        labelID.Text     = n.getID();
                        labelOpe.Text    = n.getOpe();
                        labelTme.Text    = n.getTime().ToString();
                        total            = 0;
                        restante         = n.getTime();
                        labelTt.Text     = n.getTrans().ToString();
                        labelTr.Text     = (n.getTime() - n.getTrans()).ToString();
                        int i = n.getTrans();
                        if (n.getTrans() != 0)
                        {
                            total    = i;
                            restante = n.getTime() - i;
                        }
                        for (int j = i; j < n.getTime(); j++)
                        {
                            this.Refresh();
                            if (!pause)
                            {
                                Thread.Sleep(700);
                            }
                            else
                            {
                                try
                                {
                                    Thread.Sleep(Timeout.Infinite);
                                }
                                catch (ThreadInterruptedException)
                                {}
                            }
                            total++;
                            conto++;
                            restante--;
                            labelTt.Text       = total.ToString();
                            labelTr.Text       = restante.ToString();
                            labelContador.Text = conto.ToString();
                            if (error)
                            {
                                j = n.getTime();
                            }
                            if (interrupt)
                            {
                                n.setTrans(total);
                                j = n.getTime();
                                listBox1.Items.Add(n.getID() + "\t\t" + n.getTime() + "\t" + n.getTrans());
                                aux.Add(n);
                            }
                        }
                        listBox1.Items.RemoveAt(0);
                        if (interrupt)
                        {
                            interrupt = false;
                        }
                        else
                        {
                            if (error)
                            {
                                listBox2.Items.Add(n.getID() + " \t" + n.getOpe() + "\t\tError");
                                error = false;
                            }
                            else
                            {
                                n.resolver();
                                listBox2.Items.Add(n.getID() + " \t" + n.getOpe() + "\t\t" + n.getResult().ToString());
                            }
                        }
                        sig++;
                        aux.RemoveAt(0);
                    }
                    lote++;
                    rest--;
                    if (rest == -1)
                    {
                        rest = 0;
                    }
                    listBox2.Items.Add("-----------------------------------------------------");
                    labelPendientes.Text = rest.ToString();
                    aux.Clear();
                }
            }
            MessageBox.Show("Fin de Simulación");
        }