c# - 调试器没有跳过/进入异步/等待

标签 c# debugging async-await azure-blob-storage

我正在单独测试一些代码,它运行得很好 - 调试器会逐步执行每一行并返回预期结果。以下是我正在单独测试的一些代码:

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 行开始。

enter image description here

然后我单步执行,调试器跳到第 60 行(调用方法),没有数据。

enter image description here

我该如何解决这个问题/发生了什么?

我是异步编程和从 blob 存储中检索内容的新手。提前致谢!

最佳答案

我正在添加答案以解决此问题。

要进入/结束,您需要将 azure.storage.blobs 包安装到您的调用项目中,因此它只是与引用相关。然后在调试期间,您可以单步进入/越过它。

关于c# - 调试器没有跳过/进入异步/等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62476794/

相关文章:

c# - 检查值元组是否为默认值

php - 长时间运行的进程调试。斯特雷斯,布鲁克

c++ - 在visual studio c中调试时跳出for循环中的函数

c# - Using block 中的异步

Flutter 无法从另一个类调用异步函数

javascript - 如何在 JS 的 setInterval 中等待?

c# - 模型绑定(bind)是否通过 asp.net mvc 中的查询字符串工作

c# - 如何运行只有 NotifyIcon 的 "empty"Windows 应用程序?

你能为 gdb 中的 'step' 计时吗?

c# - HTML - 我如何知道所有框架何时加载?