public static Tiket <TipoTrabajo> AñadirFaena(TrabajaEventHandler <TipoTrabajo> metodo, TipoTrabajo trabajo, Tiket <TipoTrabajo> .PrioridadEnum prioridad) { Tiket <TipoTrabajo> faena = new Tiket <TipoTrabajo>(metodo, trabajo, prioridad); AñadirFaena(faena); return(faena); }
public static void AñadirFaena(Tiket <TipoTrabajo> tiket) { tiket.DentroPool = true; faenasEstaticas.Add(tiket); if (estaOrdenado) { faenasEstaticas.Sort(); } }
public int CompareTo(Tiket <TipoTrabajo> other) { int compareTo = prioridad.CompareTo(other.prioridad); if (compareTo == 0) { return(PosicionId.CompareTo(other.PosicionId)); } else { return(compareTo); } }
public static void QuitaOAbortaFaena(Tiket <TipoTrabajo> faenaHaAbortar) { if (feanasHaciendose.ContainsKey(faenaHaAbortar.IdUnico)) { hilosFaenas.Remove(feanasHaciendose[faenaHaAbortar.IdUnico].Value.Key.Name); try { feanasHaciendose[faenaHaAbortar.IdUnico].Value.Key.Abort(); } catch { } feanasHaciendose.Remove(faenaHaAbortar.IdUnico); faenaHaAbortar.DentroPool = false; } else if (faenasEstaticas.Contains(faenaHaAbortar)) { faenasEstaticas.Remove(faenaHaAbortar); faenaHaAbortar.DentroPool = false; } }
static void HazFaena() { Tiket <TipoTrabajo> tiket = null; while (faenasEstaticas.Count > 0) { tiket = faenasEstaticas.Pop(); if (tiket != null) { feanasHaciendose.Add(tiket.IdUnico, new KeyValuePair <Thread, Tiket <TipoTrabajo> >(Thread.CurrentThread, tiket)); tiket.EstadoFaena = Tiket <TipoTrabajo> .EstadoFaenaEnum.Haciendose; try { tiket.HazFaena(); } catch (Exception ex) { tiket.Excepcion(ex); } QuitarFaena(tiket); feanasHaciendose.Remove(tiket.IdUnico); tiket.EstadoFaena = Tiket <TipoTrabajo> .EstadoFaenaEnum.Acabado; tiket.FaenaHechaEvent(); } } hilosFaenas.Remove(Thread.CurrentThread.Name); }
public static void QuitarFaena(Tiket <TipoTrabajo> tiketFaena) { faenasEstaticas.Remove(tiketFaena); tiketFaena.DentroPool = false; }