How to create a method that does not wait to finish to return OK

Asked

Viewed 72 times

0

I need to create a method that returns "OK" immediately, without waiting for a method called by it to end. how to do this?

    [WebMethod]
    public string ImportaDadosPosLeilaoValores(string fileName)
    {
        //a chamada abaixo irá demorar varios minutos, NÃO deve ser esperado o retorno dela
        ImportaDados(fileName);
        return "OK - Recebido";     // Resposta Imediata
    }

1 answer

0


The way it is at the moment I believe the simplest is just to put it into a task like the way below:

 [WebMethod] //WebServiceMethod 
    public string ImportaDadosPosLeilaoValores(string fileName) 
    { //a chamada abaixo irá demorar varios minutos, NÃO deve ser esperado o retorno //dela 
      Task.Run(()=>ImportaDados(fileName)); 
      return "OK - Recebido"; 
    // Resposta Imediata 
}

However it is also possible to work with async methods through the async modifier, but to do so would have to change not only this method but also the Imported(), would be more or less like this:

[WebMethod] //WebServiceMethod 
        public async Task<string> ImportaDadosPosLeilaoValores(string fileName) 
        { //a chamada abaixo irá demorar varios minutos, NÃO deve ser esperado o 
          //retorno dela 
          ImportaDados(fileName); //esse método também teria o modificador async, e 
          //caso você chame o 'await' então ele esperaria para completar
          return "OK - Recebido"; 
        // Resposta Imediata 
    }

Browser other questions tagged

You are not signed in. Login or sign up in order to post.