gpt4 book ai didi

azure - 对 Azure 表存储的异步调用

转载 作者:行者123 更新时间:2023-12-02 06:32:52 24 4
gpt4 key购买 nike

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

问题是,虽然此方法正在对 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 时收到错误.

最佳答案

How do I modify this method so that I can make it a "standard" async method?

将所有对 Result 的调用替换为 await:

Task<TableQuerySegment<T>> querySegment = table.ExecuteQuerySegmentedAsync(query, continuationToken);
TableQuerySegment<T> segment = await querySegment;

编译器将从那里引导您。

关于azure - 对 Azure 表存储的异步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43266020/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com