Вот обобщенный метод извлечения из таблицы хранилища Azure ( примеры в официальном документе).
public async Task<T> RetrieveOne<T>(string partitionKey, string rowKey, bool isAsync = false) where T : TableEntity
{
// To construct the query operation
TableOperation retrieveOperation = TableOperation.Retrieve<T>(partitionKey, rowKey);
// To execute the query
TableResult result;
if (isAsync)
{
result = await _table.ExecuteAsync(retrieveOperation);
}
else
{
result = _table.Execute(retrieveOperation);
}
// To parse the result
if (result.Result != null)
{
return (T)result.Result;
}
else
{
throw new Exception("The result retrieved is null");
}
}
Я использую isAsync
в списке параметров, чтобы указать, является ли этот метод асинхронным или нет. Я сделал это?
Преимущества очевидны: можно легко переключать опции между async
или нет.
Кажется, что такой стиль обернул бы и синхронный (isAsync = false
) в Task
ценой дополнительных затрат, так как выполнение одних только задач также требует времени. Любой другой недостаток?