В 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));
Просто глядя на это штуковина заставляет меня задаться вопросом, как это могло бы быть эффективным. Я жду здесь три раза, чтобы избавить себя от необходимости писать инструкцию. Есть ли лучший способ, возможно, переход IAwitable? Я использую эту конструкцию довольно часто, поэтому я думаю, что небольшая оптимизация пройдет долгий путь. Я далеко по дороге, используя async, жду в своем приложении, и я действительно начинаю думать, что хвост виляет собакой. Но это история на другой день.
Обратите внимание, что мой вопрос не имеет ничего общего с TPL. – Sam
* так что я думаю, что немного оптимизация пройдет долгий путь * Что вы подразумеваете под этим? Вы сравнили свой код и обнаружили это как узкое место? Или это просто ощущение, что что-то можно улучшить? Если это последний, я бы сказал, пусть этот код будет, так как я ничего не вижу * с ним. –
@YuvalItzchakov Просто чувствую себя. Я просто использую его много, поэтому, если я смогу найти небольшую экономию, это будет полезно. Async/await все еще ловкость для меня, как я уже говорил. – Sam