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