none
Saber cuando termina un Async en C# RRS feed

  • Pregunta

  • Tengo una función async en c# y quisiera saber cuando estar termina su ejecución para poder traer los datos que devuelve.

    public static async void RunTranslate()

    {

    //Mi codigo

    }

    domingo, 1 de junio de 2014 13:17

Todas las respuestas

  • Tienes que usar un await, el cual dividirá el durante y después de la ejecución.

    private async void helloword()
    {
    
     Task hello = new Task(helloFunc); //creamos la tarea
    
     hello.Start(); //iniciamos la tarea
    
     //mientras se ejecuta
     Console.WriteLine("Ejecutando...");
    
     await hello; //espera mientras que termine de ejecutarse
    
     //cuando termina
     Console.WriteLine("Listo :)");
    
    }
    
    private void helloFunc()
    {
     Console.WriteLine("Hello World!");
    }
    


    Isaac Martinez

    lunes, 2 de marzo de 2020 1:44
  • hola

    Si invocas un metodo async debes usar con el await con lo cual termina en ese mismo punto donde lo invocas y continua desde alli mismo

    No se si has leido sobre async/await

    Programación asincrónica con async y await

    a donde apunto es que no estas lanzando Task en paralelo que debas usar un WaitAll() para ver cuando terminan, sino que invocas una funcionalidad sin bloquear el thread, por eso con el await esperas que retorne y continuas justo debajo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 2 de marzo de 2020 11:47