Pular para o conteúdo principal

Questão de TI - Desenvolvimento de Sistemas — Linguagem C# ("CSharp) — FUNDATEC 2025

TI - Desenvolvimento de SistemasLinguagem C# ("CSharp)
Código
qa699686
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2025
Cargo
ANC ( )
Em um serviço ASP.NET Core, fora de manipuladores de evento, qual é o retorno apropriado para métodos assíncronos, considerando observação de exceções, possibilidade de await pelo chamador e boas práticas de escalabilidade?
  1. APreferir ValueTask/ValueTask<T> em todos os métodos para reduzir alocações; quando o método apenas “dispara e esquece”, usar async void para simplificar.
  2. BReservar async void apenas para manipuladores de eventos; para métodos de serviço/repositório, retornar Task/Task<T>.
  3. Cawait não bloqueia, mas em ASP.NET Core o contexto é sempre recapturado; por isso, ConfigureAwait(false) é obrigatório para evitar deadlocks.
  4. DPara não “segurar” a thread de requisição, envolver todo I/O em Task.Run e retornar void quando não houver resultado.
  5. ERetornar Task quando houver resultado e async void quando não houver, já que o chamador não precisa aguardar.
Revelar gabarito e comentário

GabaritoB — Reservar async void apenas para manipuladores de eventos; para métodos de serviço/repositório, retornar Task/Task<T>.

Link permanente: /questoes/qa699686