Evitar se me "congele" mi aplicacion

22/07/2008 - 16:10 por Rick | Informe spam
Que tal foro, una duda

Tengo una aplicacion que carga datos de una db, es un SP, que se tarda unos
segundos en ejecutarse, se carga cuando inicia la app y pues no hay lio, el
problema es que despues, por medio de un timer cada 5 o 10 segundos, mando
llamar de nuevo a ese SP y mientras se ejecuta la aplicacion se congela, no
sigue su ejecucion normal, hasta que termina de ejecutarse el SP ya puedes
seguir trabajando, pero dado el timer pues es muy latoso que cada X segundos
se congele la aplicacion, intenté llamar a ese SP por medio de un
backgroundworker y nada, hace lo mismo (se congela por X segundos), por
medio de un hilo y tampoco =(


Que otra opcion tengo? o que me recomiendan hacer?


Saludos!!
 

Leer las respuestas

#1 Alberto Poblacion
22/07/2008 - 17:34 | Informe spam
"Rick" wrote in message
news:
Tengo una aplicacion que carga datos de una db, es un SP, que se tarda
unos segundos en ejecutarse, se carga cuando inicia la app y pues no hay
lio, el problema es que despues, por medio de un timer cada 5 o 10
segundos, mando llamar de nuevo a ese SP y mientras se ejecuta la
aplicacion se congela, no sigue su ejecucion normal, hasta que termina de
ejecutarse el SP ya puedes seguir trabajando, pero dado el timer pues es
muy latoso que cada X segundos se congele la aplicacion, intenté llamar a
ese SP por medio de un backgroundworker y nada, hace lo mismo (se congela
por X segundos), por medio de un hilo y tampoco =(



Algo tienes que estar haciendo mal. Tanto el BackgroundWorker como el
hilo te permiten que la aplicación siga funcionando mientras se ejecuta el
procedimiento, si los usas correctamente.

Que otra opcion tengo?



Si tienes el Framework 2.0 o posterior, también puedes usar los métodos
asíncronos de ado.net, como por ejemplo el BeginExecuteNonQuery junto con su
EndExecuteNonQuery. Al igual que el BackgroundWorker y el Hilo, hay que
usarlo correctamente, por ejemplo, si llamas al EndExecuteNonQuery antes de
que haya concluido la ejecución del procedimiento, el programa se
"congelará" como si no hubieses empleado el método asíncrono.

Preguntas similares