我调试了一个基于任务的应用程序。它挂了。 : - )
查看挂起时的任务列表,我看到以下内容:
一切都悬而未决,如果我将鼠标悬停在状态上,这就是(正如预期的那样)一个直接链接到等待#8完成的所有人。 8是在"预定"状态,根据文档,是"计划任务是尚未运行的任务,因此,还没有调用堆栈,分配的线程或相关信息。" (见VS Documentation)。
此时一切都悬而未决。查看线程窗口有两个线程。一个是主线程,并在等待任务11完成时停止。还有第二个线程,一个工作线程,但它的位置是"不可用"。调试器输出窗口没有任何意义(例如抛出异常等)。
我遇到的具体问题是:调度的定义是否正确(并且我以某种方式弄乱了运行时因此它不会安排此任务运行)或者是调度的定义比什么是更精细在文档中?基本上,当它归结为它时,我试图弄清楚在哪里集中我的调试工作!
答案 0 :(得分:0)
正如@GSerg所说,真的陷入僵局。因此,通过大量的打印语句来追踪这种僵局,这使我能够弄清楚发生了什么。
我不知道为什么任务状态按计划列出 - 我原以为它应该处于其他状态。