Solo tengo una pregunta que me vino a la mente desde que comencé a trabajar en un proyecto existente: Considere el siguiente fragmento de código
public async Task<IHttpActionResult> DoSomething(Guid token) { var data= await repository.GetDataAsync(token); return await Task.FromResult(Ok(data)); } Por lo que he visto cuando uso esperar, solo puedo return Ok(data)
Pero me han dicho que no usar esa Task.FromResult conduciría a problemas asíncronos... ¿dónde puedo encontrar más información sobre este punto? Se usa en Web API Full Framework (no .NET Core)
¡Absolutamente no!
Debe usar Task.FromResult(Ok(data)) solo si recibe datos del repositorio de forma sincrónica; de lo contrario, si tiene al menos una palabra clave en await , es un desperdicio de recursos innecesario.
Entonces, puedes reescribir tu método de esta manera:
public async Task<IHttpActionResult> DoSomething(Guid token) { return Ok(await repository.GetDataAsync(token)); }