コード例 #1
0
 public void HazTrabajo(TrabajaEventHandler <TipoTrabajo> metodoParaHacerLaFaena, IEnumerable <TipoTrabajo> pilaTrabajo)
 {
     this.pilaTrabajo.Clear();
     this.pilaTrabajo.Push(pilaTrabajo);
     this.metodoParaHacerLaFaena = metodoParaHacerLaFaena;
     IHazTrabajo(null);
 }
コード例 #2
0
        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);
        }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
 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;
 }
コード例 #5
0
 public Tiket(TrabajaEventHandler <TipoTrabajo> metodo, TipoTrabajo trabajo)
     : this(metodo, trabajo, PrioridadEnum.Ninguna)
 {
 }
コード例 #6
0
 public Tiket(TrabajaEventHandler metodo)
     : this(null, default(TipoTrabajo))
 {
     metodoSinParametros = metodo;
 }
コード例 #7
0
 public static Tiket <TipoTrabajo> AñadirFaena(TrabajaEventHandler <TipoTrabajo> metodo, TipoTrabajo trabajo)
 {
     return(AñadirFaena(metodo, trabajo, Tiket <TipoTrabajo> .PrioridadEnum.Ninguna));
 }