SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: .net en Sábado 11 de Agosto de 2012, 17:02

Título: fondo Blanco al realizar un refresh Windows forms
Publicado por: .net en Sábado 11 de Agosto de 2012, 17:02
hola que tal tengo un problema haber si alguien le a pasado

Tengo un grid cargado con 3 elementos cada uno de esos elementos realizon un test a un servidor cada uno, cada uno se genera en un hilo diferente(cada test), entonces en la parte de abajo tengo un boton que refresca el estado de los registros de acuerdo al test que se realiza. Bueno el problema radica en que cuando doy un refresh todo el form se pone en fondo blanco y no se ven los controles tengo que ir al administrador de procesos y finalizar ese proceso, luego arrancarlo de nuevo

saben porque razon se da eso, o alguien me le alla pasado???
Título: Re:fondo Blanco al realizar un refresh Windows forms
Publicado por: U2_Caparzo en Domingo 12 de Agosto de 2012, 04:27
que mal :S lo mas similar que me ha pasado es que una aplicacion se me pegaba y al tratar de moverla, cerrarla o algo se ponia en blanco y no respondia, se debia a un ciclo infinito en el thread principal.
Título: Re:fondo Blanco al realizar un refresh Windows forms
Publicado por: gabio2 en Domingo 12 de Agosto de 2012, 22:18
Hasta hoy no puedo leer mentes... (aún xD) .. seria bueno que coloques parte de tú código donde realizas el llamado de los hilos y también donde realizas el refresh.

Como normalmente lo hago (y hasta hoy no me ha fallado) es de la siguiente forma:

 - Después de haber ejecutado el Hilo, al momento de refrescar como no sé si el hilo anterior ha terminado, ejecuto un delegado (para entrar al subproceso) con el Invoke() y así poder ejecutar el hilo.Abort(), ya que si deseas ejecutar el hilo.Abort() el programa marcará error de que quieres ejecutar un objeto que ya se está usando en otro proceso.

Bueno, realmente es una manera aunque yo supongo  existen otras muchas formas de hacerlo..

Saludos espero te sirva.
Título: Re:fondo Blanco al realizar un refresh Windows forms
Publicado por: .net en Miércoles 15 de Agosto de 2012, 17:34
Ok gracias por sus respuestas, hare el delegado , investigue un poco y encontre el componente BackGroundWorker que se utiliza para ejecutar un subproceso que tarda mucho o que este muy pesado en segundo plano.