c# task .net-4.6

c# - ¿Cuál es el punto de Task.CompletedTask de.NET 4.6?



.net-4.6 (1)

Task.FromResult(whatever) funciona para la Task<TResult> , pero hasta 4.6 no había nada para la tarea no genérica. Podría usar FromResult con un valor ficticio e implícitamente convertirlo en Task , pero eso confunde un poco la intención (en realidad no está devolviendo ningún valor asíncrono) y asigna los objetos que se encuentran debajo (mientras que CompletedTask se puede almacenar en caché y compartir entre todos los llamantes).

No es raro ver tareas personalizadas estáticas completadas en las bases de código actuales (4.5.2 y anteriores), por lo que, en mi opinión, tiene sentido incorporarlo al marco en sí.

Esta publicación del blog menciona las nuevas API de tareas, incluida una nueva propiedad Task.CompletedTask introducida en .NET 4.6.

¿Por qué se agregó esto? ¿Cómo es esto mejor que, por ejemplo, Task.FromResult(whatever) ?