Peticion Asincrona.

07/03/2006 - 20:01 por daplago | Informe spam
Buenas tardes a todos,
Estoy evaluando la posibilidad de cambiar tres ejecutables que tengo en VB6
por un solo proceso en VB.NET con peticiones asíncronas.
La cosa es que en su momento tenia un ejecutable en VB6 y su ejecución eran
muy lentas, por ello, para agilizar el proceso dividí el proyecto en tres,
ganando mucho tiempo, pero cargando con las consecuencias de dicha decisión.
Ahora estoy pensando en generar un único proyecto en Visual Basic.NET con
llamadas asíncronas.
¿Consideráis viable la alternativa? ¿Es fácil la implementación de dicha
funcionalidad? ¿Es necesario trabajar con hilos?

Espero vuestra ayuda y muchas gracias a todos.
 

Leer las respuestas

#1 Alberto Poblacion
07/03/2006 - 22:41 | Informe spam
"daplago" wrote in message
news:
Ahora estoy pensando en generar un único proyecto en Visual Basic.NET con
llamadas asíncronas.
¿Consideráis viable la alternativa? ¿Es fácil la implementación de dicha
funcionalidad? ¿Es necesario trabajar con hilos?



Es bastante sencillo hacer llamadas asíncronas en .Net. Se puede hacer
manejando hilos, si se desea, pero hay una alternativa más simple, que
consiste en el denominado "patrón de programación asíncrona". Muchas
funciones del framework, como por ejemplo las lecturas/escrituras de
streams, las peticiones http, las llamadas a servicios web, y (en vs2005)
las llamadas a base de datos, tienen dos formas de realizarse: una es la
"estándard", por ejemplo, Read(...) para leer de un Stream, y otra es la
misma pero anteponiéndole Begin (p.ej., BeginRead(...)). La forma que
empieza por Begin lanza automáticamente un hilo separado tomándolo del pool
de hilos del sistema, y por tanto funciona de forma asíncrona con muy poco
trabajo de programación. Para recuperar los resultados, se usa la forma de
la función precedida de End (p.ej., EndRead(...)).
Si tienes que llamar a alguna función que por si misma no contemple el
patrón de programación asincrona, se lo puedes añadir fácilmente invocándola
a través de un delegado. Los delegados tienen los métodos
BeginInvoke/EndInvoke, que permiten aplicar por su mediación este mismo
patrón asíncrono.

Preguntas similares