C# Visual Studio中窗体关闭后调试未停止

C# Visual Studio中窗体关闭后调试未停止,c#,visual-studio-debugging,C#,Visual Studio Debugging,关闭用C#编写的窗体时,Visual Studio调试不会停止。关闭窗体时如何停止调试进程。我在表单关闭事件中添加了Application.Exit()方法,但它不起作用 谢谢你。试试这个 编辑: 如果有运行的无限线程,则执行以下操作 Thread myThread = new Thread(...); myThread.IsBackground = true; //set your running thread to background myThread.Start(...); 你可以看看

关闭用C#编写的窗体时,Visual Studio调试不会停止。关闭窗体时如何停止调试进程。我在表单关闭事件中添加了Application.Exit()方法,但它不起作用

谢谢你。

试试这个

编辑:

如果有运行的
无限
线程,则执行以下操作

Thread myThread = new Thread(...);
myThread.IsBackground = true; //set your running thread to background
myThread.Start(...);

你可以看看怎么做?从

可以看出,另一种可能性是,您的流程运行在一个未正确处理的异常中。我曾经在自建对话框中显示异常消息,但有一次忘记显示已创建的窗口。因此程序遇到了异常,创建了窗口,但没有显示任何异常迹象。。。因此,即使在我关闭应用程序时,这个过程仍在运行。

这将晚了四年,但是,我想我会为遇到这个问题的任何其他人发布这篇文章(就像我刚才所做的那样),如果这是非常基本的,请提前道歉,我对C相当陌生,所以这让我有点失望

我遇到了与OP相同的问题,在FormClosing事件中,Application.Exit()或Environment.Exit(0)都不会结束调试器

我发现的是查看FormClosing事件上方的引用计数,它显示“0个引用”。我刚刚从另一个论坛复制并粘贴了结束事件,因此没有事件处理程序来实际处理我创建/复制的事件

解决此问题的一个简单方法(除了不复制和粘贴代码外)是创建事件处理程序:

  • 首先转到“Form1.cs[设计]”选项卡
  • 导航到“属性”框
  • 点击“事件”
  • 找到“FormClosing”并双击它

如果您有相同的问题,您现在应该能够看到至少有一个引用该事件。现在,当您关闭窗体时,它也应该停止调试器。

我回答这个问题是因为当调试过的应用程序关闭时,VS没有停止

查看导致ide挂起的原因的一种方法是单击“暂停”,然后在“调试位置”工具栏上查看仍在运行的所有线程。对我来说,我注意到仍然有一个RabbitMq上下文未被处理。这就是我需要的线索

在我更改代码之后,VS现在会在应用程序退出后停止调试会话


我知道这不是一个您可能期望的解决方案,但找出应用程序没有正确退出或仍然保持后台进程活动的原因是一个非常棘手的问题。“活动线程”下拉列表是查看imho的最佳位置。

可能某些后台处理仍在运行?关闭主窗体并检查“线程”窗口后,可以暂停执行。关闭所有内容后,请尝试Visual Studio中“调试”菜单上的“全部中断”,然后查看最终结果。是的,我意识到我的一些线程仍在运行。如何停止这些线程?您是否尝试过Application.Current.Shutdown()。Application类中没有当前项。为什么?我正在使用.net framework 4客户端配置文件。请尝试此.close();在Application.exit()之后,如果我在Application.exit()之后使用此.Close(),则会产生StackOverflowException。我认为应用程序中存在一个无限循环,这通常是由于对一个函数的递归调用导致的,而该递归调用从未终止。我添加了一些代码,请检查并让我知道它是否有效。它不起作用。我将Environment.Exit(0)放入表单关闭事件,现在调试过程停止。这个方法行吗?泰!这也是我的问题。回复:Threads,我以前从未使用过那个窗口。。。只有设置了断点,才能看到它们。当您中断时,它们通过调试->窗口可见。
Thread myThread = new Thread(...);
myThread.IsBackground = true; //set your running thread to background
myThread.Start(...);