✔ Otimize seu código usando Task.FromResult ao em vez de Task.Run

✔ Otimize seu código usando Task.FromResult ao em vez de Task.Run


✅ Task.Run inicia uma tarefa no pool de threads e retorna um identificador de tarefa Task ou Task<T> para ela. É mais comumente usado para descarregar trabalhos intensivos em CPU para uma thread em segundo plano.

✅ Task.FromResult é um método para criar um Task<T> que já está concluído com o resultado especificado. Isso é útil quando você tem uma API que retorna um Task<T>, mas o resultado já está disponível de forma síncrona. Ele evita o uso desnecessário de threads.

🚀 Task.FromResult é mais rápido do que Task.Run, pois simplesmente cria um Task concluído com o resultado fornecido, enquanto Task.Run agenda um novo item de trabalho no ThreadPool, o que envolve troca de contexto e, portanto, é mais caro.

💡 Use Task.FromResult quando estiver implementando uma API assíncrona que às vezes é concluída de forma síncrona. Também é útil em testes unitários quando você está simulando um método assíncrono.

💡 Use Task.Run para descarregar trabalhos intensivos em CPU para uma thread em segundo plano, a fim de manter a interface do usuário ou o chamador responsivos.

🔥 Esta dica se aplica se você deseja retornar uma tarefa de um método assíncrono, mas não tem nenhum trabalho assíncrono a ser feito. Por exemplo, se você implementar uma interface que tenha um método assíncrono, mas sua implementação for síncrona, você pode usar Task.FromResult para retornar uma tarefa concluída com o resultado.

#csharp #dotnet #programming #cleancode #aspnetcore #performancetips #dicasdeperformance #aspnetbr
#csharpbrasil #programacao #dotnetbr #dotnetbras

Comentários

Postagens mais visitadas deste blog

✔ Use string.Equals em vez de ToUpper()/ToLower() ao comparar strings

💡 Use nameof para converter um enum para string #codesmell

✅Código Limpo - Use nomes de variáveis significativos e pronunciáveis