none
Método Async e operador Await RRS feed

  • Pergunta

  • Recentemente comecei a ler sobre programação assíncrona, no VB temos o método Async, porém não consigo entender como utilizo o operador Await.

    Imagino que tal operador deva ser utilizado da seguinte maneira:

    Public Async Function Calcular() As Task (Of Integer)

    Dim soma As Integer = Await Somar()

    Return soma

    End Function

     Private Function Somar()

    return 2 + 2

    End Function

    Posso estar muito enganado....

    segunda-feira, 25 de março de 2019 13:43

Respostas

  • Olá, Tiago!

    O operador "await" é usado comumente em execuções de tarefas assíncronas, tarefas que executam junto de outras tarefas. Por exemplo, um sistema em que o usuário faz o upload de arquivos. Se o procedimento de receber os arquivos for assíncrono (Async), o usuario poderá utilizar o sistema normalmente enquanto o upload ocorre em segundo plano.

    O "await", nesse caso, seria utilizado para fazer a proxima tarefa  aguardar até que todos os arquivos fossem carregados.

    No código que você postou, todo o restante após o "Await Somar()" iria aguardar até que "Somar()" concluísse. 

    Segue um artigo que irá ajudar a compreensão.

    https://docs.microsoft.com/pt-br/dotnet/visual-basic/language-reference/operators/await-operator


    “First do it, then do it right, then do it better.” - Addy Osmani

    • Marcado como Resposta Tiago.SP segunda-feira, 25 de março de 2019 18:51
    segunda-feira, 25 de março de 2019 14:42

Todas as Respostas

  • Olá, Tiago!

    O operador "await" é usado comumente em execuções de tarefas assíncronas, tarefas que executam junto de outras tarefas. Por exemplo, um sistema em que o usuário faz o upload de arquivos. Se o procedimento de receber os arquivos for assíncrono (Async), o usuario poderá utilizar o sistema normalmente enquanto o upload ocorre em segundo plano.

    O "await", nesse caso, seria utilizado para fazer a proxima tarefa  aguardar até que todos os arquivos fossem carregados.

    No código que você postou, todo o restante após o "Await Somar()" iria aguardar até que "Somar()" concluísse. 

    Segue um artigo que irá ajudar a compreensão.

    https://docs.microsoft.com/pt-br/dotnet/visual-basic/language-reference/operators/await-operator


    “First do it, then do it right, then do it better.” - Addy Osmani

    • Marcado como Resposta Tiago.SP segunda-feira, 25 de março de 2019 18:51
    segunda-feira, 25 de março de 2019 14:42
  • Obrigado!
    segunda-feira, 25 de março de 2019 18:51
  • A programação assíncrona é muito interessante e poderosa, porém necessita de uma certa compreensão para a implementação. Procure saber sobre Threads, semáforos, deadlocks, etc. Acredito que irá te agregar um ótimo conhecimento!

    “First do it, then do it right, then do it better.” - Addy Osmani

    segunda-feira, 25 de março de 2019 19:11