线程已退出代码0(0x0),没有无显着的exception

在debugging我的C#应用​​程序的时候,我注意到下面一句话的大量出现:“线程 – 已经退出了代码0(0x0)”。 应用程序继续工作,没有任何例外是/不受欢迎的。

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

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

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

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

  • debugging器加载或卸载的模块。

  • 引发的exception。

  • 退出的进程。

  • 线程退出。

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

线程完成任务后,退出并停止存在。 在这里,即没有惊人的,你不应该在乎。

如果您的应用程序直接或间接地使用线程(即在第三方库之后的场景之后),那么在线程完成之后终止线程是绝对常见的…这基本上就是您所描述的…debugging器显示此消息…你可以configurationdebugging器不显示这个消息,如果你不想要它…

如果上述不能帮助,请提供更多的细节,因为我不知道你面对的是什么问题。

该框架创build线程来支持您创build的每个窗口,例如,当您创build一个窗体和.Show()它。 当窗户closures时,线程终止(即退出)。

这是正常的行为。 然而,如果应用程序正在创build线程,并且有很多与这些线程相对应的线程退出消息(可以通过线程的名称来告诉它们,通过在应用程序中给它们不同的名称),那么这可能表明了一个问题与应用程序创build线程,当它不应该,由于程序逻辑错误。

让原始的海报让我们知道他/她发现关于服务器崩溃的问题,这将是一个有趣的后续行动。 我有一种感觉,这和这件事没有任何关系……但是很难从发布的信息中看出来。

为了完成BlueM公认的答案,你可以在这里取消它:

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

在我的代码中添加“WaitForSingleObjectEx”后,我得到了这些症状,以实现Windows 8 Metro中的“睡眠”行为。

也许这将帮助OP或任何想要find实际来源的人。

正如BlueM所build议的那样,我closures了消息。