0
在this question我问如何使一个我使用的可用的实用方法。在回答我的问题是这样的:我该如何简化这种方法
public async Task<TResult> TryAsync<TResult>(Func<IDataServices, Task<TResult>> method)
{
using (IDataServices client = GetClient())
{
return await method(client);
}
}
以上被称为像这样:
Model m = await ClientResolver.TryAsync(async x => await x.GetModelByIDAsync(modelID));
只要看看这个玩意儿让我不知道它怎么可能是有效的。我在这里等待三次,为自己省去编写使用陈述的麻烦。有没有更好的方法,或许传递了IAwaitable?我非常频繁地使用这个构造,所以我认为一些优化将会有很长的路要走。我在应用程序中使用异步等待的道路上,我真的开始认为尾巴摇摆着狗。但那是另一天的故事。
请注意我的问题与TPL无关。 – Sam 2015-03-03 05:48:31
*所以我认为一点优化会走很长的路* Whay是你的意思吗?你是否对你的代码进行了基准测试,并发现它是瓶颈?或者,这只是一种直觉,可以改进一些东西?如果它是后者,我会说让这个代码,因为我没有看到任何*错误的*。 – 2015-03-03 05:53:03
@YuvalItzchakov只是肠道的感觉。我只是使用它很多,所以如果我可以找到一点储蓄,这将是有益的。正如我所提到的,异步/等待对我来说仍然是一种欺骗手段。 – Sam 2015-03-03 05:56:21