【问题标题】:The thread '<No Name>' (0xb24) has exited with code 0 (0x0)线程“<No Name>”(0xb24) 已退出,代码为 0 (0x0)
【发布时间】:2013-01-29 03:07:07
【问题描述】:

例如,每当我尝试运行程序时,

如果我必须在

中运行“frmphonebook”
Application.Run(new frmphonebook());

我输入了但是当我运行它时它运行另一个表单,并且它发生在每个表单上并且它显示输出为

The thread 'vshost.RunParkingWindow' (0x63c) has exited with code 0 (0x0).

The thread '<No Name>' (0xb24) has exited with code 0 (0x0).

如何解决?

【问题讨论】:

  • 是的,当我运行你的程序时,我得到了同样的结果。

标签: visual-studio-2010


【解决方案1】:

你可以给你的线程一个名字,它也可以帮助你调试...... 但是在许多应用程序中,线程是隐式创建的,您无法控制名称。 所以这不是错误消息。代码 0 表示一切都按计划进行。任何非零代码通常表示错误。

edit:您也可以禁用这些消息的显示,在调试时,右键单击输出,然后选择您想要查看的内容。

【讨论】:

    【解决方案2】:

    如果线程以代码 0 退出,则它运行成功。在 Codeproject 上是 Beginners-Guide-to-Threading 这个article on threading 也可能有帮助。这个question on so could also be of use。一个list of System Error Codes

    【讨论】:

      【解决方案3】:

      关于使用调试器,您将学到的一件事是,您将看到我们可能称之为系统的“柔软的白腹”(暗指鳄鱼的解剖结构):加载和卸载各种 DLL,启动和停止“帮助”线程的有些复杂的安排......等等。

      看到所有这些消息可能会分散经验不足的用户的注意力。但是,随着时间的推移,您会明白调试器只是真实而冗长。它为您显示的详细信息可能与您的调试过程并不真正相关,但它无法“知道”这一点;它只是显示事实信息,你必须理清什么是相关的,什么是不相关的。

      对于 Windows 窗体应用程序,我自己注意到似乎有几个“帮助”线程,通常没有名称,或者(正如我在调试时经常看到的那样),它们被命名为“vshost.RunParkingWindow” ”。通常,除了您可能自己创建的任何线程之外,您还必须相信系统正在代表您创建线程。正如其他人所建议的那样,为您自己的线程指定有意义的名称,以便您可以将它们与系统线程区分开来。

      您可以通过在 UI 更新代码中的某处放置一个断点来进一步了解 Windows 窗体应用的多线程结构,当它命中时,使用 Debug/Windows/Threads 来显示所有正在运行的线程的视图您的流程空间。你会很惊讶,我想,有多少!尝试在您的应用程序中一一创建并 .Show()-ing 多个表单。我想您会看到每个 .Show() 操作都会创建一个新窗口,并为该窗口创建几个支持线程。

      您还可能会在调试窗口中看到如下消息:“System.Windows.Forms.dll 中发生了‘System.ObjectDisposedException’类型的第一次机会异常”。很多时候,系统异常处理程序会代表您执行合理的默认操作。此消息在调试器中没有中断显示,表明某些默认处理程序已为您处理此异常。

      对 Windows 窗体应用程序之类的系统支持有些复杂,以使您的实现更容易和更简单。当您运行调试器时,您会看到其中的一些详细信息。随着时间的推移,您将了解什么是“常见的”以及什么是问题的指示。

      【讨论】:

      • 一个很好的答案,+1。我只想说,“系统代表你创建线程”和“调试器创建自己使用的线程”之间的区别应该更精确。您在名称中看到的任何带有“vshost”的内容都不是代表您的应用程序创建的,它是为调试目的而创建的。不过,确实,您的洞察力非常好。随着时间的推移,你会学会recognize what is and is not normal
      • 为了好玩,Microsoft 更改了您引用的文章 Cody 的 URL。现在在blogs.msdn.microsoft.com/oldnewthing/20060710-12/?p=30583
      • 并且 URL 再次更改为 devblogs.microsoft.com/oldnewthing/?p=30583 - 在此注意重定向在将来某个时候消失的可能性(也因为即使现在它们似乎也不总是有效!) .
      【解决方案4】:

      检查您的网络应用程序中是否有一些文件已被呈现为无法访问。就我而言,我的图表控件创建了一个只读的文本文件,并引发了异常。删除了文件和文件夹,瞧

      【讨论】:

        【解决方案5】:

        我找到了我认为的解决方案....我 Visual Studio 转到项目 >properties >linker >system 查找 Subsystem 行并单击向下箭头并更改为 Console(....words.... )。

        它对我有用!享受”

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-07-25
          • 2018-05-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-12-16
          • 1970-01-01
          相关资源
          最近更新 更多