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

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

线程——已经退出,代码为0(0x0)。

应用程序继续工作,没有任何异常被捕获。

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

256738 次浏览

如果你的应用程序直接或间接地使用线程(例如在第三方库中的幕后) ,线程在完成后终止是绝对常见的... 这基本上就是你所描述的... 调试器显示这条消息... 你可以配置调试器不显示这条消息,如果你不想要它..。

如果以上没有帮助,那么请提供更多的细节,因为我不知道究竟是什么问题是你面临的..。

嗯,一个应用程序可能有许多线程并行运行。有些是由您、编码人员运行的,有些是由框架类运行的(特别是在 GUI 环境中)。

当线程完成其任务时,它退出并停止以存在。 这没什么可担心的,你也不应该在意。

这只是一个调试信息。你可以右键点击输出窗口,取消选中 Thread Exit Messages来关闭它。

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

除了从应用程序编程外,输出窗口 可显示以下资料:

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

  • 引发的异常。

  • 出口的进程。

  • 穿过那个出口。

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

这是正常行为。然而,如果应用程序正在创建线程,并且有很多线程退出消息与这些线程相对应(可以通过应用程序中的线程名称来判断) ,那么这可能意味着由于程序逻辑错误,应用程序在不应该创建线程的情况下创建线程出现了问题。

这将是一个有趣的后续有原来的海报让我们知道她/他发现了什么与服务器崩溃的问题。我有一种感觉,这不会有任何关系... ... 但它很难告诉,从上传的信息。

为了完成布鲁姆接受的答案, 你可以在这里关闭它:

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

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

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

我也遇到过这个问题,解决办法是:

  1. 开放式解决方案探索
  2. 双击 Program.cs 文件

我再次添加了这段代码,我的程序运行得很准确:

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

停止此错误,您必须遵循以下简单步骤

  1. 开放视觉工作室
  2. 从顶部选择选项 debug
  3. 选择选项
  4. 在“选项”中,选择“调试下的调试”,选择“常规”
  5. 在“常规选中”复选框“调试停止时自动关闭控制台”中
  6. 省省吧

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

除此之外,直接运行时还会显示错误