C# 如何在VisualStudio2010调试器中查看后台线程

C# 如何在VisualStudio2010调试器中查看后台线程,c#,multithreading,visual-studio,debugging,C#,Multithreading,Visual Studio,Debugging,我试图弄清楚为什么在应用程序关闭且窗口消失后,应用程序进程仍停留在TaskManager中 当我让VS连接到僵尸进程并断开所有线程时,threads窗口显示主线程仍然处于活动状态,还有许多工作线程 一些问题: 工作线程是否一定是后台线程?如果没有,我如何识别后台线程,因为我在窗口中没有看到这样的列 我是否只需双击thread窗口中的每个线程,并查看thread.IsBackgroundThread值 当我单击主线程时,调试器不会显示调用堆栈。怎么 我是否确定主线程被卡住的位置 我强烈建议您使用

我试图弄清楚为什么在应用程序关闭且窗口消失后,应用程序进程仍停留在TaskManager中

当我让VS连接到僵尸进程并断开所有线程时,threads窗口显示主线程仍然处于活动状态,还有许多工作线程

一些问题:

  • 工作线程是否一定是后台线程?如果没有,我如何识别后台线程,因为我在窗口中没有看到这样的列

    我是否只需双击thread窗口中的每个线程,并查看thread.IsBackgroundThread值

  • 当我单击主线程时,调试器不会显示调用堆栈。怎么 我是否确定主线程被卡住的位置


    • 我强烈建议您使用WinDbg。它不是一个可视化的调试器,尽管它更强大。 我一定会找到你的。 要列出进程中的所有线程,请使用:~
      切换到某个线程~thread\u id
      看看现在的线桩!clr_堆栈

      简短的教程。


      也可以在google中尝试“使用windbg调试Asp.net”

      使用Debug+Break All获得堆栈跟踪。在代码中搜索DoEvents。没有迹象表明他正在使用ASP.NetAgree。我的意思是,这就是我在WinDbg上找到最有用信息的方式。