Foros del Web » Programación para mayores de 30 ;) » .NET »

Threads ejecucion simultanea

Estas en el tema de Threads ejecucion simultanea en el foro de .NET en Foros del Web. Hola foro tengo la siguiente duda, que no he podido resolver a ver si alguno de ustedes tiene una idea. tengo un proceso que recibe ...
  #1 (permalink)  
Antiguo 02/11/2011, 09:30
Avatar de Porlachucha  
Fecha de Ingreso: noviembre-2008
Ubicación: Santiago
Mensajes: 172
Antigüedad: 16 años
Puntos: 5
Threads ejecucion simultanea

Hola foro

tengo la siguiente duda, que no he podido resolver a ver si alguno de ustedes tiene una idea.

tengo un proceso que recibe parametros (de varios tipos) y que debe ser ejecutado varias veces en forma ciclica durante el dia.
para esto, se desarrollo un servicio windows que corre en un server.

el prococeso demora alrededor de 2 horas en ejecutarse, ya que es una gran cantidad de data que se analiza y transforma.
el proceso tambien parte si iy solo si existen ciertas condiciones (archivos puestos en una ubicacion por otros servicios, ect)

la dificultad radica en la ejecucion, ya que para optimizar el tiempo y aprovechar los multiples nucleos de la maquina (4) se requiere que estos procesos sean ejecutados en forma simultanea en hilos distintos

basicamente la ejecucion esta de la siguiente forma

Código:
            // crea un ciclo de ejecucion se acuerdo a las interfaces a procesar 
            List<String> lsInterfacesProcesables = cConfigura.lsObtieneListaInterfaces(true);

            // crea instancias
            foreach (String sInterface in lsInterfacesProcesables)
            {
                Thread t1 = new Thread(() => EjecutarInterface(sInterface, cConfigura, dtFechaProceso, cLog));
                t1.Start();
            }
los parametros son:
sInterface : tipo string, identifica al producto
cConfigura: un objeto que contiene toda la configuracion necesaria para el procesamiento del producto
dtFechaProceso: tipo DateTime, indica la fecha de procesamiento
cLog: objeto que contendra el log de ejecucion


lo que hice fue crear una expresion lambda que pasara como parametros al objeto instanciado que ejecuta el proceso.

los problemas de esta forma de ejecucion son 2.

1.- necesito instanciar multiples veces el mismo objeto, pasandole parametros distintos, y esto requiero hjacerelo en hilos separados.
2.- necesito saber el estado de ejecucion de dichos procesos, para que una vez terminados pueda volver a lanzarlos. si es que ya ha terminado la ejecucion del proceso, y en caso contrario esperar una cantida determinada de tiempo para preguntar nuevamente por el estado.

espero que haber sido claro en el planteamiento de mi problema
cualquier comentariosera de mucha ayuda

gracias
plch
__________________
Nada mas patetico que "detestar" a Intel o Microsoft o Windows o Apple ... apuesto que eres el tipico teton espinilluo y pajero que usa Linux para sentirse capo ...
  #2 (permalink)  
Antiguo 03/11/2011, 12:46
 
Fecha de Ingreso: agosto-2011
Ubicación: Buenos Aires
Mensajes: 78
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: Threads ejecucion simultanea

Podrías probar mejor con llamadas asícronas:

Llamadas asíncronas

Es la forma que provee .NET para manejarse con el multithreading.
__________________
www.orientadoanet.com
  #3 (permalink)  
Antiguo 04/11/2011, 10:00
Avatar de Porlachucha  
Fecha de Ingreso: noviembre-2008
Ubicación: Santiago
Mensajes: 172
Antigüedad: 16 años
Puntos: 5
Respuesta: Threads ejecucion simultanea

compadre.. excelente aporte.
Se nota que sabes del tema.

Muchisimas gracias
__________________
Nada mas patetico que "detestar" a Intel o Microsoft o Windows o Apple ... apuesto que eres el tipico teton espinilluo y pajero que usa Linux para sentirse capo ...

Etiquetas: ejecucion, simultanea, threads
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:57.