对Azure表存储的异步调用

对Azure表存储的异步调用,azure,asynchronous,.net-core,azure-table-storage,Azure,Asynchronous,.net Core,Azure Table Storage,下面是我用来从.NET核心类库中的Azure表存储(ATS)读取数据的方法 问题是,尽管此方法正在对ATS进行异步调用,但我不能等待它。如何修改此方法,使其成为“标准”async方法 public T Get<T>(string partitionKey, string rowKey, string tableName) where T : ITableEntity, new() { var table = GetTable(tableName); TableQue

下面是我用来从.NET核心类库中的Azure表存储(ATS)读取数据的方法

问题是,尽管此方法正在对ATS进行异步调用,但我不能等待它。如何修改此方法,使其成为“标准”
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;
}
public T Get(string partitionKey、string rowKey、string tableName),其中T:ITableEntity,new()
{
var table=GetTable(tableName);
TableQuery=新建TableQuery()。其中(
TableQuery.CombineFilters(
TableQuery.GenerateFilterCondition(“PartitionKey”,QueryComparisons.Equal,PartitionKey),
表3.以及,
TableQuery.GenerateFilterCondition(“RowKey”,QueryComparisons.Equal,RowKey)).Take(1);
var结果=新的T();
TableContinuationToken continuationToken=null;
做
{
Task querySegment=table.ExecuteQuerySegmentedAsync(查询,continuationToken);
TableQuerySegment段=querySegment.Result;
结果=段.FirstOrDefault();
continuationToken=段。continuationToken;
}while(continuationToken!=null);
返回结果;
}
如果我简单地添加
async Task
await
关键字,我会在使用
await
时出错

如何修改此方法,使其成为“标准”异步方法

将对
Result
的所有调用替换为
wait

Task<TableQuerySegment<T>> querySegment = table.ExecuteQuerySegmentedAsync(query, continuationToken);
TableQuerySegment<T> segment = await querySegment;
Task querySegment=table.ExecuteQuerySegmentedAsync(查询,continuationToken);
TableQuerySegment段=等待querySegment;

编译器将指导您从那里开始。

将您的方法标记为async:)因此
public async Task GetAsync()
您的意思是没有“wait”否,而不是没有“wait”。这将使它成为一种同步方法。