Guardar objetos en la base de datos en un hilo diferente

19/06/2008 - 17:37 por jcpc91 | Informe spam
hola

estaba leyendo sobre hilos y pensé ke seria buena idea guardar en la
base de datos las instancias de objetos que se crean en un hilo
diferente paraque en teoria en caso de que en caso de que el objeto
tarde mucho en guardar ya sea porque tiene una cantidad considerable
de informacion o porke no se puede conectar la pantalla principal no
se bloquee pero tengo muchas dudas como:

¿es recomendable hacer esto?
¿como se manejan las exepciones en los hilos en particular la de
SqlExeption?
¿que herrores puede producir el hilo?
¿cuantos hilos puedo iniciar?

entre otras dudas

megustaria ke alguien me conmetara sobre esta idea si alguien la hecho
cual es su experiencia y si nadie lo ha echio los expertos ke piensan
sobre esto ¿se puede, no se puede, es recomendable, no es
recomendable?

gracias por sus respuestas
 

Leer las respuestas

#1 Jesús López
21/06/2008 - 13:54 | Informe spam
¿es recomendable hacer esto?



Siempre es recomendable realizar las operaciones que más tardan en segundo
plano con el fin de no congelar el interfaz del usuario más de un tiempo
razonable y pequeño, pongamos uno o dos segundos.


¿como se manejan las exepciones en los hilos en particular la de
SqlExeption?



Se manejan como cualquier otra excepción:
* Registro del error
* Comunicación al usuario del error ocurrido

El registro del error podría hacerlo el propio hilo que realiza la operación
con la base de datos, pero la comunicación al usuario debería hacerse en el
hilo principal

¿cuantos hilos puedo iniciar?



Podrías iniciar un nuevo hilo cada vez que necesitas hacer una operación con
la base de datos. También podrías hacer uso del Thread Pool. Pero en mi
opinión es mejor utilizar el patrón de programación asíncrona en vez de usar
hilos directamente.


megustaria ke alguien me conmetara sobre esta idea si alguien la hecho
cual es su experiencia y si nadie lo ha echio los expertos ke piensan
sobre esto ¿se puede, no se puede, es recomendable, no es
recomendable?



Yo he desarrollado una herramienta de desarrollo rápido de aplicaciones que
se llama Sold RAD que incluye una pequeña y sencilla framework donde todas
las operaciones con la base de datos pueden hacerse en segundo plano
utilizando el modelo de programación asíncrona. Siempre es un poco
complicado programar de forma asíncrona y tiene muchas implicaciones, por
ejemplo que tienes que deshabilitar ciertas partes del interfaz de usuario
mientras el proceso en segundo plano está en curso. No puedes saber
inmediatamente cual ha sido el resultado de la operación con lo que tienes
que posponer el procesamiento de ese resultado y todo lo que eso conlleva.

Sin embargo, creo que los beneficios compensan la complejidad adicional de
este modelo y todas las aplicaciones deberían adoptarlo. Además la tendencia
que se está desarrollando en el mundo de los microprocesadores, me refiero
al hecho de que cada vez los procesadores tienen más núcleos, requiere que
para poderle sacar partido a este hardware, se haga programación asíncrona y
multihilo.

Saludos:

Jesús López
www.soldiq.com

PD: puedes ver una introducción a SolidRAD en:

http://blogs.solidq.com/ES/CuevaNet...st.aspx?ID

Preguntas similares