none
vb.net llamar de forma asíncrona a un método RRS feed

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

    SqlCommand.CommandTimeout

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Isak Tortuga miércoles, 28 de diciembre de 2016 16:13
    miércoles, 28 de diciembre de 2016 15:26

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).


    miércoles, 28 de diciembre de 2016 14:32
  • 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

    miércoles, 28 de diciembre de 2016 15:03
  • >>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

    SqlCommand.CommandTimeout

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Isak Tortuga miércoles, 28 de diciembre de 2016 16:13
    miércoles, 28 de diciembre de 2016 15:26