Principales respuestas
vb.net llamar de forma asíncrona a un método

Pregunta
-
Buenos días
- Editado Isak Tortuga miércoles, 28 de diciembre de 2016 16:17
Respuestas
-
>>estoy en una aplicación de escritorio bastante antigua con visual studio 2008
pero si es winform porque planteaste el tema en el foro de asp.net ?
>>obtenemos error de timeout, sólo me dijeron de llamar el método de forma asíncrona
si tienes un timeout desde la base de datos una llamanada asincrona no lo soluciona
deberias ver de optimizar la consulta para que demore menos, o quizas reducir la cantidad de registros que retorna paginando los datos
sino vas a tener que subir el parametro de timeout en el objeto commnad
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Marcado como respuesta Isak Tortuga miércoles, 28 de diciembre de 2016 16:13
Todas las respuestas
-
Dependiendo de tus objetivos y las características de tu programa, tienes múltiples opciones, entre las que me vienen a la mente las siguientes:
- Usar un objeto BackgroundWorker.
- Crear un Thread (espacio de nombres System.Threading) y lanzarlo manualmente.
- Lo mismo pero usando el ThreadPool
- Usar la Task Parallel Library (TPL)
Posiblemente lo más potente, y relativamente sencillo, sea usar el BackGroundWorker. Tienes ejemplos en la propia documentación en MSDN:
https://msdn.microsoft.com/es-es/library/system.componentmodel.backgroundworker(v=vs.110).aspx
En todos los casos, recuerda que ese código donde dices "aquí hago cosas" no puede hacer ninguna cosa que lea o modifique la interfaz de usuario, ya que ésta es mono-hilo. Antes de mostrar en pantalla los resultados de ese método, hay que transferir su ejecución al hilo principal (cosa que el BackgroundWorker puede hacer automáticamente ya que tiene un evento para ello, pero si usas cualquier otro mecanismo necesitas hacerlo a mano, posiblemente por mediación de Control.Invoke).
- Editado Alberto PoblacionMVP miércoles, 28 de diciembre de 2016 14:34
-
hola
pero estas en un ambiente web, quieres invocar este metodo desde el cliente con jquery desde el cliente o es desde el mismo codigo desde el servidor en .net ?
Podrias usar el async/await si usas asp.net 4
A Simple Explanation of Async and Await in ASP.NET
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
>>estoy en una aplicación de escritorio bastante antigua con visual studio 2008
pero si es winform porque planteaste el tema en el foro de asp.net ?
>>obtenemos error de timeout, sólo me dijeron de llamar el método de forma asíncrona
si tienes un timeout desde la base de datos una llamanada asincrona no lo soluciona
deberias ver de optimizar la consulta para que demore menos, o quizas reducir la cantidad de registros que retorna paginando los datos
sino vas a tener que subir el parametro de timeout en el objeto commnad
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Marcado como respuesta Isak Tortuga miércoles, 28 de diciembre de 2016 16:13