✔ 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
✅ 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
Postar um comentário