并行堆栈为什么不显示任何任务?

时间:2015-11-12 16:11:09

标签: .net visual-studio debugging task-parallel-library

我调试了一个使用asyncawait模式大量使用TPL的应用程序,但是当我暂停应用程序时并行堆栈窗口仅显示以下消息:

无需显示任务。 LoadSymbols enter image description here

我100%确定有多个任务正在运行,因为当我在其中一个并行运行的代码中设置一个断点时,就会被命中。

我读了一个similar question,其中的问题是这个调试器功能仅适用于Windows 8.1及更高版本,但我有:

  • Windows 10
  • Visual Studio Community 2015
  • 这是一个WPF应用程序

由于

1 个答案:

答案 0 :(得分:3)

基于

TaskCompletionSource的任务未显示在Visual Studio任务调试功能中。此外,当异步IO正在进行时,没有线程忙于处理IO。这种组合意味着您无法找到当前正在运行的异步IO工作。

这是异步IO的主要缺点之一。您无法暂停调试器以查看正在发生的情况,也无法使用分析工具。

(答案自VS2015起有效。也许这会改变。)