Como ya se mencionó si puede usar await
. Si necesita ejecutar el código sincrónicamente como lo menciona .GetAwaiter().GetResult()
, .Result
o si .Wait()
existe un riesgo de puntos muertos, como muchos han dicho en los comentarios / respuestas. Como a la mayoría de nosotros nos gustan las líneas, puede usarlas para.Net 4.5<
Adquisición de un valor a través de un método asíncrono:
var result = Task.Run(() => asyncGetValue()).Result;
Llamar sincrónicamente a un método asíncrono
Task.Run(() => asyncMethod()).Wait();
No se producirán problemas de punto muerto debido al uso de Task.Run
.
Fuente:
https://stackoverflow.com/a/32429753/3850405
GetResult
: "Este tipo y sus miembros están destinados a ser utilizados por el compilador". Otra persona no debería estar usándolo.async
/await
método en MVC, por ejemplo)