Úselo cuando desee crear un método esperado sin usar la palabra clave asíncrona. Encontré este ejemplo:
public class TextResult : IHttpActionResult
{
string _value;
HttpRequestMessage _request;
public TextResult(string value, HttpRequestMessage request)
{
_value = value;
_request = request;
}
public Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
{
var response = new HttpResponseMessage()
{
Content = new StringContent(_value),
RequestMessage = _request
};
return Task.FromResult(response);
}
}
Aquí está creando su propia implementación de la interfaz IHttpActionResult para utilizarla en una acción de API web. Se espera que el método ExecuteAsync sea asíncrono, pero no tiene que usar la palabra clave asíncrona para hacerlo asíncrono y estar a la espera. Como ya tiene el resultado y no necesita esperar nada, es mejor usar Task.FromResult.