线程已退出代码0(0x0),没有未处理的异常

时间:2012-09-13 16:14:16

标签: c# .net debugging

在调试我的C#应用​​程序时,我注意到大量出现以下句子:

  

线程 - 已从代码0(0x0)退出。

应用程序继续工作,没有任何异常被捕获/无法处理。

该应用程序在Windows 7 64位上运行,并使用x86平台进行调试。

8 个答案:

答案 0 :(得分:98)

这只是调试信息。您可以通过右键单击输出窗口并取消选中线程结束消息来关闭它。

http://msdn.microsoft.com/en-us/library/bs4c1wda.aspx

  

除了从应用程序中编程外,还有输出窗口   可以显示以下信息:

     
      
  • 调试器已加载或卸载的模块。

  •   
  • 引发的例外情况。

  •   
  • 退出的流程。

  •   
  • 退出的主题。

  •   

答案 1 :(得分:8)

嗯,应用程序可能有很多并行运行的线程。有些是由你运行的,编码器,有些是由框架类运行的(特别是如果你在GUI环境中)。

线程完成任务后,退出并停止存在。 在这里没有什么可担心的,你不应该在意。

答案 2 :(得分:5)

为了完成BlueM的接受答案, 你可以在这里停用它:

工具>选项>调试>一般输出设置>线程退出消息:关闭

答案 3 :(得分:4)

如果您的应用程序直接或间接使用线程(即在第三方库中的场景后面),完成后线程终止是绝对常见的......这基本上就是您描述的...调试器显示此消息...您可以将调试器配置为在不需要时显示此消息...

如果以上情况没有帮助,请提供更多详情,因为我不确定您面临的问题是什么......

答案 4 :(得分:1)

框架创建线程来支持您创建的每个窗口,例如,当您创建Form和.Show()时。当窗口关闭时,线程终止(即,它们退出)。

这是正常行为。但是,如果应用程序正在创建线程,并且有很多线程退出消息对应于这些线程(可以通过线程的名称来判断,通过在应用程序中给它们不同的名称),那么也许这是表示由于程序逻辑错误,应用程序创建线程时出现问题。

让原始海报让我们知道他/她发现的服务器崩溃问题是一个有趣的后续行动。我觉得它与此无关......但从发布的信息中很难说清楚。

答案 5 :(得分:1)

执行Linq查询会生成额外的线程。 当我尝试在即时窗口中执行使用Linq查询集合的代码时,由于调试器没有足够的可用线程,它经常拒绝运行。

正如其他人所说,线程在完成后退出是完全正常的。

答案 6 :(得分:0)

停止此错误,您必须执行以下简单步骤

  1. 打开Visual Studio
  2. 从顶部选择选项调试
  3. 选择选项
  4. 在“选项”中选择“调试”,在“调试”下选择“常规”
  5. 在“常规”中选中“调试停止时自动关闭控制台”复选框
  6. 保存

然后使用快捷键Ctrl + f5运行代码

**否则,直接运行它仍会显示错误

答案 7 :(得分:-1)

我也遇到了这个问题,解决方法是:

  1. 打开解决方案浏览器
  2. 双击Program.cs文件

我再次添加了此代码,并且我的程序正确运行:

Application.Run(new PayrollSystem()); 
//File name this code removed by me accidentally.