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

procesos c#

Estas en el tema de procesos c# en el foro de .NET en Foros del Web. hola comunidad algo muy raro pasa con mi codigo si pongo estos 2 procesos asi cobranzaConstruccion(); cobranzaRevestimiento(); me funciona de maravilla ahora si pongo hiloBuscarConstruccionTerreno ...
  #1 (permalink)  
Antiguo 24/11/2009, 09:09
 
Fecha de Ingreso: enero-2008
Mensajes: 233
Antigüedad: 16 años, 3 meses
Puntos: 2
procesos c#

hola comunidad

algo muy raro pasa con mi codigo

si pongo estos 2 procesos asi

cobranzaConstruccion();
cobranzaRevestimiento();

me funciona de maravilla

ahora si pongo


hiloBuscarConstruccionTerreno = new Thread(cobranzaConstruccion);
hiloBuscarConstruccionTerreno.Start();

hiloBuscarRevestimiento = new Thread(cobranzaRevestimiento);
hiloBuscarRevestimiento.Start();

ME ARROJA EL ERROR
Valor de tiempo de espera caducado. El período de tiempo de espera expiró antes de obtener una conexión del grupo. Esto puede suceder porque todas las conexiones de la agrupación estaban en uso y se alcanzó el máximo tamaño del grupo.

que podra ser u.U
  #2 (permalink)  
Antiguo 24/11/2009, 09:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: procesos c#

Tienes un deadlock en el plan de ejecución.
Revisa qué recursos invocan cada uno, porque evidentemente hiloBuscarConstruccionTerreno está usando recursos que hiloBuscarRevestimiento pide y viceversa.
Evidentemente en el orden inverso, hiloBuscarRevestimiento libera los recursos que requiere el otro antes que el otro pida los propios.
No pueden ser concurrentes en ese orden.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 24/11/2009, 09:16
 
Fecha de Ingreso: enero-2008
Mensajes: 233
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: procesos c#

hiloBuscarConstruccionTerreno = new Thread(cobranzaConstruccion);
hiloBuscarConstruccionTerreno.Start();
hiloBuscarConstruccionTerreno.Join();
hiloBuscarRevestimiento = new Thread(cobranzaRevestimiento);
hiloBuscarRevestimiento.Start();
hiloBuscarRevestimiento.Join();

ese codigo me funciona perfecto!!, pero se me bloquea la interfaz de usuario cosa que no quiero que pase, y si le saco el join() me arroja el error ya menciona que puedo hacer??
  #4 (permalink)  
Antiguo 25/11/2009, 22:19
Avatar de TheoriaX  
Fecha de Ingreso: agosto-2009
Ubicación: Hermosillo, Sonora
Mensajes: 217
Antigüedad: 14 años, 9 meses
Puntos: 5
Respuesta: procesos c#

puedes usar un el backgroundworker que es un componente para procesos en segundo plano..
es facil de usar...

nomas abres su funcion para empesar el proceso

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)

{

//aqui pones los procesos


}

y este es para cuando termine el proceso

private void backgroundWorker1_RunWorkerCompleted(object sender,RunWorkerCompletedEventArgs e)
{

//algun mensaje

}

pero eso si para poder correr el backgrounworker tienes k mandar a llamar esta funcion ya sea en un boton o en el evento load como kieres

backgroundWorker1.RunWorkerAsync();

a ver si eso te sirve
  #5 (permalink)  
Antiguo 26/11/2009, 09:08
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: procesos c#

el problema como dice gnzsoloyo es que tienes recursos compartidos es decir tus 2 procesos en algun momento estan colisionando en el uso de recursos y pues hay un timeout evidente.

si compartes el codigo de tus 2 procesos sera mas facil saber por donde va la jugada
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
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 06:49.