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

Posted

技术标签:

【中文标题】线程以代码 0 (0x0) 退出,没有未处理的异常【英文标题】:The thread has exited with code 0 (0x0) with no unhandled exception 【发布时间】:2012-09-06 19:03:23 【问题描述】:

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

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

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

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

【问题讨论】:

你确定这些是你的主题吗?如果是这样,您不希望他们完成吗? 【参考方案1】:

如果您的应用程序直接或间接使用线程(即像在第 3 方库中那样在幕后),线程在完成后终止是绝对常见的......这基本上就是你所描述的......调试器显示此消息...如果您不想显示此消息,您可以将调试器配置为不显示...

如果上述方法没有帮助,请提供更多详细信息,因为我不确定您到底面临什么问题...

【讨论】:

【参考方案2】:

嗯,一个应用程序可能有很多并行运行的线程。有些由您(编码员)运行,有些由框架类运行(尤其是如果您在 GUI 环境中)。

当一个线程完成其任务时,它会退出并停止存在。 即没有什么令人担忧的,你不应该关心。

【讨论】:

我讨论过的线程不是我的(或不属于我的应用程序)。但是,我的应用程序需要连接到 Linux AIX 服务器,该服务器返回大量无效进程。我对该服务器的工作方式(以及它的任务)不清楚,但我认为上述线程可能会影响服务器行为。 好吧,也许线程实际上会影响您的应用程序,但是您收到的消息告诉您它们已成功终止。因此,您可以尝试找出它们运行的​​原因(调试菜单 => 窗口 => 线程),但它们结束是正常的。 它们正常结束,但 Linux 服务器失效的进程可能是 .net 框架线程的副作用。也许应用程序在多线程实现中存在各种编程错误。有可能吗? 我不知道。这个 linuw 服务器正在运行 .NET?使用单声道?你的问题到底是什么?已失效的进程? 是的,dufunct 进程导致 Linux 服务器崩溃。【参考方案3】:

这只是调试消息。您可以通过右键单击输出窗口并取消选中 Thread Exit Messages 来关闭它。

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

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

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

抛出的异常。

退出的进程。

退出的线程。

【讨论】:

【参考方案4】:

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

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

让原始发布者让我们知道她/他发现了有关服务器崩溃问题的信息,这将是一个有趣的后续行动。我觉得这与此无关……但从发布的信息中很难判断。

【讨论】:

【参考方案5】:

为了完成 BlueM 接受的答案, 您可以在此处停用它:

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

【讨论】:

BlueM 接受的答案实际上有一个更简单的解决方案:“您可以通过右键单击输出窗口并取消选中线程结束消息来关闭它”【参考方案6】:

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

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

【讨论】:

【参考方案7】:

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

    打开解决方案探索 双击 Program.cs 文件

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

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

【讨论】:

【参考方案8】:

停止这个错误你必须遵循这个简单的步骤

    打开 Visual Studio 从顶部选择选项调试 选择选项 在选项选择调试下的调试选择常规 一般选择复选框“调试停止时自动关闭控制台” 保存

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

**否则直接运行时仍然显示错误

【讨论】:

以上是关于线程以代码 0 (0x0) 退出,没有未处理的异常的主要内容,如果未能解决你的问题,请参考以下文章

使用代码 0 (0x0) 退出

线程以未捕获的异常退出,AyncTask #2 致命错误

Android视图:未捕获的处理程序:线程主因未捕获的异常而退出

当 python 脚本有未处理的异常时退出代码

当其中一个线程中存在未捕获的异常时,Python 多线程程序不会退出

sop代码未处理系统线程异常