Episódio

Seis dicas essenciais para assíncrono - Introdução

Assíncrono envolve alguns novos conceitos. Eles não são difíceis; apenas desconhecido. Ao longo do ano passado, Lucian Wischik tem observado como as pessoas usam async/await em C# e VB. Esta série apresenta os três principais padrões assíncronos e antipadrões, e as três principais dicas para escrever suas próprias bibliotecas assíncronas.

Dicas:

  1. O Async void é apenas para manipuladores de eventos de nível superior e coisas semelhantes a eventos. Não o use em outro lugar do seu código.
  2. É crucial distinguir o trabalho vinculado à CPU (deve ser feito no threadpool) do trabalho vinculado à E/S (que não precisa).
  3. Você pode encerrar eventos em APIs de retorno de tarefas e aguardá-los. Isso pode simplificar drasticamente o código.
  4. Os métodos de biblioteca assíncrona não devem mentir: eles não devem usar Task.Run internamente em segredo e devem expor uma assinatura assíncrona se e somente se sua implementação for assíncrona
  5. Os métodos de biblioteca assíncrona devem ter APIs assíncronas volumosas, não chatas. Mas se a tagarelice é inevitável, saiba sobre essas microotimizações para reduzir as despesas gerais de alocação de heap.
  6. Os métodos de biblioteca assíncrona devem considerar a tarefa. ConfigureAwait(false) para reduzir seu impacto na fila de mensagens da interface do usuário.

Se você entender o fluxo básico de controle em um método assíncrono, esses três pontos cairão naturalmente no lugar. Este primeiro vídeo de introdução explica esse fluxo de controle.

Slides e código-fonte estão disponíveis no blog de Lucian.

C#