我正在单独测试一些代码,它运行得很好 - 调试器会逐步执行每一行并返回预期结果。以下是我正在单独测试的一些代码:
static async Task<List<string>> GetExclusionDataAsync(Uri blobUri)
{
var listOfExclusions = new List<string>();
var blobDownloadInfo = await StreamBlobData(blobUri);
using (StreamReader reader = new StreamReader(blobDownloadInfo.Content))
{
while (!reader.EndOfStream)
{
string exclusionRow = reader.ReadLine();
listOfExclusions.Add(exclusionRow);
}
}
return listOfExclusions;
}
private static async Task<BlobDownloadInfo> StreamBlobData(Uri blobPathUri)
{
BlobClient blobClient = new BlobClient(blobPathUri);
BlobDownloadInfo blobDownloadInfo = await blobClient.DownloadAsync();
return blobDownloadInfo;
}
我已将此测试代码(几乎)完全复制到另一个更大的开发人员中。解决方案。当我在 BlobClient blobClient = new BlobClient(blobPathUri);
行上设置断点、调试并尝试单步进入该行时,调试器会跳过该方法中的其余代码并跳转返回到先前的方法,但没有预期的数据。见下文:
调试器从第 75 行开始。
然后我单步执行,调试器跳到第 60 行(调用方法),没有数据。
我该如何解决这个问题/发生了什么?
我是异步编程和从 blob 存储中检索内容的新手。提前致谢!
最佳答案
我正在添加答案以解决此问题。
要进入/结束,您需要将 azure.storage.blobs 包安装到您的调用项目中,因此它只是与引用相关。然后在调试期间,您可以单步进入/越过它。
关于c# - 调试器没有跳过/进入异步/等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62476794/