Forums Últimos mensajes - Powered by IBM
 

barra o animacion mientras lee la base de datos

21/06/2006 - 17:34 por Imac_Man | Informe spam
Saludos amigos

tengo una aplicacion que mediante un sql data adapter llena un DataSet, esto
es super clasico, pero me gustario que mientras el programa esta haciendo ese
llenado pueda yo estar corriendo un progressbar infinito que me he conseguido
por alli o una animacion que solo se mantenga moviendo mientras se lee para
dar la idea que el programa esta haciendo algo.

he probado con el doevents pero siempre se queda todo congelado mientras el
adaptador llena el dataset y da la impresion que el programa esta colgado.

mil gracias de antemano
 

Leer las respuestas

#1 Alberto Poblacion
21/06/2006 - 18:03 | Informe spam
"Imac_Man" wrote in message
news:
[...] progressbar o una animacion que solo se
mantenga moviendo mientras se lee para
dar la idea que el programa esta haciendo algo.

he probado con el doevents pero siempre se queda todo congelado mientras
el
adaptador llena el dataset y da la impresion que el programa esta colgado.



No, no vale con el DoEvents porque tendría que estar metido dentro de la
rutina interna que va trayendo registros dentro del Fill, y no tienes acceso
a ella. Podrías simularla usando en lugar de Fill un DataReader con un bucle
para traer registros, y metiendo DoEvents dentro del bucle.

Pero hay un método mejor, que consiste en trabajar en multihilo. Lanzas
dos hilos, y en uno traes los registros con el Fill mientras que el otro es
el que visualiza la animación. Probablemente te resulte más sencillo dejar
la animación en el hilo "standard" del formulario y lanzar el Fill en un
nuevo hilo, en lugar de al contrario.
Si tienes VS 2003, estudia la clase System.Threading.Thread para lanzar
hilos. Si tienes la versión 2005, hay un par de alternativas para trabajar
en multihilo que a lo mejor te resultan más cómodas: Una es usar el control
BackgroundWorker, y otra es utilizar los métodos asíncronos de acceso a base
de datos, tales como BeginExecuteReader.

Preguntas similares