Svi*_*ica 7 .net c# azure asp.net-core
关于从 Azure 存储(或更准确地说从容器)获取 blob 列表的非常简单的问题
由于我使用的是.NET Core 2.2,并且 C# 7.3 版本中不允许使用异步流:
await foreach (BlobItem blobItem in containerClient.GetBlobsAsync())
{
Console.WriteLine("\t" + blobItem.Name);
}
Run Code Online (Sandbox Code Playgroud)
所以我尝试了类似的东西,但没有任何运气(在黑暗中刺伤)
List<BlobItem> items = new List<BlobItem>();
Task.Factory.StartNew(async () => items.Add(await containerClient.GetBlobsAsync()));
Run Code Online (Sandbox Code Playgroud)
所以我想知道 C# v7.3 中等待 foreach 语法的替代方案是什么
谢谢
dev*_*ull 11
返回AsyncPageable<T>的 byGetBlobsAsync()暴露了一个IAsyncEnumerator<T>,您可以使用它来使用简单的while循环进行迭代:
Azure.AsyncPageable<Azure.Storage.Blobs.Models.BlobItem> blobs = containerClient.GetBlobsAsync();
IAsyncEnumerator<Azure.Storage.Blobs.Models.BlobItem> enumerator = blobs.GetAsyncEnumerator();
try
{
while (await enumerator.MoveNextAsync())
{
Azure.Storage.Blobs.Models.BlobItem blob = enumerator.Current;
// use blob
}
}
finally
{
await enumerator.DisposeAsync();
}
Run Code Online (Sandbox Code Playgroud)