2
以下是我用于从.NET Core类库中的Azure表存储(ATS)读取数据的方法。异步调用Azure表存储
问题是虽然这种方法是对ATS进行异步调用,但我不能await
它。我如何修改此方法,以便使其成为“标准”async
方法?
public T Get<T>(string partitionKey, string rowKey, string tableName) where T : ITableEntity, new()
{
var table = GetTable(tableName);
TableQuery<T> query = new TableQuery<T>().Where(
TableQuery.CombineFilters(
TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, partitionKey),
TableOperators.And,
TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.Equal, rowKey))).Take(1);
var result = new T();
TableContinuationToken continuationToken = null;
do
{
Task<TableQuerySegment<T>> querySegment = table.ExecuteQuerySegmentedAsync(query, continuationToken);
TableQuerySegment<T> segment = querySegment.Result;
result = segment.FirstOrDefault();
continuationToken = segment.ContinuationToken;
} while (continuationToken != null);
return result;
}
如果我只需添加async Task<T>
和await
关键字,我得到的,我用await
错误。
标记您的方法异步:)所以'公共异步任务 GetAsync ()' –
你的意思是没有“等待” – Sam
不,不是无的await。这将使它成为同步方法。 –