public void HazTrabajo(TrabajaEventHandler <TipoTrabajo> metodoParaHacerLaFaena, IEnumerable <TipoTrabajo> pilaTrabajo) { this.pilaTrabajo.Clear(); this.pilaTrabajo.Push(pilaTrabajo); this.metodoParaHacerLaFaena = metodoParaHacerLaFaena; IHazTrabajo(null); }
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); }
/// <summary> /// Realiza el trabajo en un hilo aparte /// </summary> /// <param name="metodoParaHacerLaFaena">se tiene que tener en cuenta un valor por defecto en vez de una pila de trabajo</param> /// <param name="pilaTrabajo"></param> /// <returns>devuelve un semaforo que si se le hace WhaitOne espera hasta que acabe la faena :)</returns> public Semaphore HazTrabajoAsinc(TrabajaEventHandler <TipoTrabajo> metodoParaHacerLaFaena, IEnumerable <TipoTrabajo> pilaTrabajo) { this.pilaTrabajo.Clear(); this.pilaTrabajo.Push(pilaTrabajo); this.metodoParaHacerLaFaena = metodoParaHacerLaFaena; Semaphore acabaFaena = new Semaphore(0, 1); hiloPrincipal = new Thread(() => IHazTrabajo(acabaFaena)); hiloPrincipal.Priority = PrioridadThreads; hiloPrincipal.Start(); return(acabaFaena); }
public Tiket(TrabajaEventHandler <TipoTrabajo> metodo, TipoTrabajo trabajo, PrioridadEnum prioridad) { this.metodoConParametros = metodo; this.trabajo = trabajo; posicionId = -1; Prioridad = prioridad; dentroPool = false; idUnico = (int)generadorId.Siguiente(); EstadoFaena = EstadoFaenaEnum.Pendiente; esperaTreballFet = new Semaphore(0, 1); dejeDeEsperar = new System.Timers.Timer(); dejeDeEsperar.Elapsed += AcabaEsperaEvento; }
public Tiket(TrabajaEventHandler <TipoTrabajo> metodo, TipoTrabajo trabajo) : this(metodo, trabajo, PrioridadEnum.Ninguna) { }
public Tiket(TrabajaEventHandler metodo) : this(null, default(TipoTrabajo)) { metodoSinParametros = metodo; }
public static Tiket <TipoTrabajo> AñadirFaena(TrabajaEventHandler <TipoTrabajo> metodo, TipoTrabajo trabajo) { return(AñadirFaena(metodo, trabajo, Tiket <TipoTrabajo> .PrioridadEnum.Ninguna)); }