【问题标题】:Why doesn't visual studio exit the debugger on application exit?为什么 Visual Studio 在应用程序退出时不退出调试器?
【发布时间】:2012-01-13 20:48:52
【问题描述】:

我正在尝试找出项目中发生的哪些更改导致当我关闭正在调试的应用程序时应用程序无法退出调试器。我还注意到未处理的异常不再调用未处理的异常处理程序,我不确定它是否相关。

【问题讨论】:

  • 请告诉我们它是什么类型的应用程序(网络应用程序、共享点、桌面应用程序或其他)。

标签: c# .net visual-studio-2010 debugging


【解决方案1】:

这可能是由于没有设置为后台线程的其他线程使应用程序保持活动状态。后台线程将在应用程序完成时终止,而前台线程将保持应用程序的其余部分处于活动状态,直到它们完成。

检查负责线程的一种方法是在调试器中,如下所示:

  • 在调试器中运行您的应用
  • “退出”您的应用。
  • 等到应用应该退出但没有退出
  • 使用“暂停”按钮进入应用程序
  • 打开“线程”调试窗口
  • 在此窗口中查找任何线程。可能会有一个或几个线程显示。看看您是否可以通过窗口中的信息来识别它们。
  • 打开“堆栈”调试窗口,然后依次双击“线程”窗口中的每个线程,查看“堆栈”窗口的内容,也可能会有帮助。您可能能够看到任何卡住的线程正在尝试做什么。

【讨论】:

    【解决方案2】:

    当所有线程退出时调试器退出。您可能已经创建了一个额外的线程并且没有做任何事情来终止它。

    这可以解释未处理的异常未被捕获:如果它们发生在不同的线程上,您将不会在主线程上看到它们。

    【讨论】:

      【解决方案3】:

      可以肯定的是,应用程序实际上并未终止。你还有其他线程在运行吗?在所有前台线程都终止之前,应用程序不会关闭。

      【讨论】:

        猜你喜欢
        • 2016-08-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多