Tengo un método que realiza llamadas asíncronas al servicio web. Algo así:Obtener el resultado del método async
public static async Task<ReturnResultClass> GetBasicResponseAsync()
{
var r = await SomeClass.StartAsyncOp();
return await OtherClass.ProcessAsync(r);
}
Y quiero dar alternativa sincrónica:
public static ReturnResultClass GetBasicResponse()
{
return GetBasicResponseAsync().Result;
}
Pero bloquea en Result
llamada. Porque se llama en el mismo hilo que las operaciones asincrónicas. ¿Cómo puedo obtener resultados sincrónicamente?
Gracias!
Gracias! ¿'ConfigureAwait' afectará a los clientes asíncronos de mi lib? Quiero decir, ¿las operaciones de sincronización seguirán siendo asincrónicas, o se ejecutarán en otro hilo para todos los clientes? – gor
Sí, afectará a los clientes asincrónicos también, pero de una manera que debería estar bien. Las operaciones asíncronas se mantendrán sincronizadas, es solo que la parte de continuación del código que usa 'ConfigureAwait()' no se ejecutará en el subproceso de la interfaz de usuario. Pero cualquier código asíncrono en métodos que comiencen en el subproceso de UI permanecerá allí (a menos que use 'ConfigureAwait()' también). – svick