Problema con hilos

13/01/2009 - 11:50 por Alfredo | Informe spam
Hola

Estoy haciendo una aplicación que trabaja con una base de datos. En un
módulo necesito que se ejecute un procedimiento almacenado de la BBDD. La
idea es que, como el procedimiento tardar unos segundos, aparezca una barra
de progreso o algo similar en el formulario que llama al método que ejecuta
el procedimiento almacenado.
El problema es que no se repinta el formulario hasta que no se ha
ejecutado el método que llama al procedimiento de base de datos. He probado
con hilos pero no se repinta nada hasta que no finaliza el proceso. ¿Cómo
puedo hacer que se actualize el formulario y luego se ejecute el código que
llama al procedimiento almacenado de la BBDD?

Gracias

El código es algo así:

public void HiloClonaExpediente()
{
ExpedienteClonado = Clonacion.ClonarExpedienteSP(IdExpedienteClonacion,
IdMomentoClonacion, FechaClonacion);

}


Y desde el formulario:


Thread hiloclona = new Thread(HiloClonaExpediente);


La idea es que antes de que se ejecute hiloclona.start, se haya repintado el
formulario

Gracias
 

Leer las respuestas

#1 xcal
13/01/2009 - 18:35 | Informe spam
"El problema es que no se repinta el formulario hasta que no se ha
ejecutado el método que llama al procedimiento de base de datos"
hola Alfredo"

no se nada de bases de datos, por lo que ligeramente podria ayudarte
lo que te menciono ahora

trata de ejecutar tareas en segundo plano con backgroundworker,
eso crea otro hilo diferente al que usa tu formulario, entonces
tu formulario no se vera "trabado", porque esta en un hilo independiente.
el backgroundworker es para estos propositos, ahorrandote mucho
de lo que tendrias usualmente que hacer con la clase Thread, y que creo
que es lo que estuviste intentando hasta ahora

espero ayude, Carlos.


"Alfredo" escribió en el mensaje
news:
Hola

Estoy haciendo una aplicación que trabaja con una base de datos. En un
módulo necesito que se ejecute un procedimiento almacenado de la BBDD. La
idea es que, como el procedimiento tardar unos segundos, aparezca una
barra de progreso o algo similar en el formulario que llama al método que
ejecuta el procedimiento almacenado.
El problema es que no se repinta el formulario hasta que no se ha
ejecutado el método que llama al procedimiento de base de datos. He
probado con hilos pero no se repinta nada hasta que no finaliza el
proceso. ¿Cómo puedo hacer que se actualize el formulario y luego se
ejecute el código que llama al procedimiento almacenado de la BBDD?

Gracias

El código es algo así:

public void HiloClonaExpediente()
{
ExpedienteClonado = Clonacion.ClonarExpedienteSP(IdExpedienteClonacion,
IdMomentoClonacion, FechaClonacion);

}


Y desde el formulario:


Thread hiloclona = new Thread(HiloClonaExpediente);


La idea es que antes de que se ejecute hiloclona.start, se haya repintado
el formulario

Gracias



Preguntas similares