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

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

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

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

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

【问题讨论】:

  • 你确定这些是你的主题吗?如果是这样,您不希望他们完成吗?

标签: c# .net debugging


【解决方案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】:

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

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

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

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

          【讨论】:

            【解决方案8】:

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

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

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

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-08-07
              • 1970-01-01
              • 2018-07-25
              • 1970-01-01
              • 1970-01-01
              • 2016-05-19
              相关资源
              最近更新 更多