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