Aula 11: Repositórios assíncronos
Uma chamada bloqueante ao base de dados congela uma thread inteira até a resposta voltar — sob carga real isso significa um servidor sufocado e um ecrã travado. Nesta aula vamos construir um repositório assíncrono: uma interface que devolve Task, e métodos que esperam por ela com await sem bloquear
Um método assíncrono é como uma campainha de restaurante: em vez de ficar parado esperando no balcão, você pega o aparelho e vai fazer outras coisas — e quando a comida está pronta, ele toca.
- Repositório assíncrono
- Um contrato de acesso a dados cujos métodos todos devolvem Task<T> — assim quem chama espera os resultados com await sem bloquear uma thread.
- Task<T> — uma promessa de um resultado
- Retornada imediatamente quando um método assíncrono é chamado; o valor T em si só fica disponível quando o trabalho termina.
- await — esperar sem bloquear
- Suspende o método, libera a thread para outro trabalho, e retoma daquele ponto com o resultado quando a Task termina.