예제 #1
0
        /// <summary>
        /// Actualiza el gráfico de estado de un proceso: Pensando (VERDE), Esperando (AMARILLO), Comiendo (ROJO)
        /// </summary>
        /// <param name="proceso">Clase que identifica al proceso que lanza el evento para notificar su cambio de estado</param>
        public void EstablecerEstado(ClaseFilosofos.Argumentos proceso)
        {
            if (!cerrando)
            {
                this.Invoke((MethodInvoker) delegate
                {
                    switch (proceso.IdProceso)
                    {
                    case 0:
                        lblFilosofo1.Text = proceso.EstadoEnEjecucion.ToString();
                        break;

                    case 1:
                        lblFilosofo2.Text = proceso.EstadoEnEjecucion.ToString();
                        break;

                    case 2:
                        lblFilosofo3.Text = proceso.EstadoEnEjecucion.ToString();
                        break;

                    case 3:
                        lblFolosofo4.Text = proceso.EstadoEnEjecucion.ToString();
                        break;

                    case 4:
                        lblFilosofo5.Text = proceso.EstadoEnEjecucion.ToString();
                        break;

                    default:
                        break;
                    }
                });
            }
        }
예제 #2
0
        private void evento_CambioEstado(object sender, EventArgs e)
        {
            ClaseFilosofos.Argumentos proceso = (ClaseFilosofos.Argumentos)sender;

            //Escribe en la consola para identificar al proceso y su estado
            //consola.Items.Add("Filosofo " + proceso.IdProceso + ": " + proceso.Estado);
            //Actualiza el gráfico del estado del proceso
            EstablecerEstado(proceso);
        }