5
我有一种方法可以对Web服务进行异步调用。类似的东西:获取异步方法的结果
public static async Task<ReturnResultClass> GetBasicResponseAsync()
{
var r = await SomeClass.StartAsyncOp();
return await OtherClass.ProcessAsync(r);
}
我想提供同步的选择:在Result
通话
public static ReturnResultClass GetBasicResponse()
{
return GetBasicResponseAsync().Result;
}
但它块。因为它是作为异步操作在同一个线程上调用的。我如何同步获得结果?
谢谢!
谢谢! 'ConfigureAwait'会影响我的lib的异步客户端吗?我的意思是,异步操作会保持异步,还是会针对所有客户端在其他线程上执行? – gor 2012-03-03 16:19:29
是的,它也会影响异步客户端,但方式应该没问题。异步操作将保持异步,只是使用'ConfigureAwait()'的代码的延续部分不会在UI线程上执行。但是,在UI线程中启动的方法中的任何异步代码都会停留在那里(除非您也使用'ConfigureAwait()')。 – svick 2012-03-03 16:31:26