【发布时间】:2012-09-06 19:03:23
【问题描述】:
在调试我的 C# 应用程序时,我注意到大量出现以下句子:
线程 -- 以代码 0 (0x0) 退出。
应用程序继续工作,没有异常被捕获/处理。
应用程序在 Windows 7 64bit 上运行,并使用 x86 平台进行调试。
【问题讨论】:
-
你确定这些是你的主题吗?如果是这样,您不希望他们完成吗?
在调试我的 C# 应用程序时,我注意到大量出现以下句子:
线程 -- 以代码 0 (0x0) 退出。
应用程序继续工作,没有异常被捕获/处理。
应用程序在 Windows 7 64bit 上运行,并使用 x86 平台进行调试。
【问题讨论】:
如果您的应用程序直接或间接使用线程(即像在第 3 方库中那样在幕后),线程在完成后终止是绝对常见的......这基本上就是你所描述的......调试器显示此消息...如果您不想显示此消息,您可以将调试器配置为不显示...
如果上述方法没有帮助,请提供更多详细信息,因为我不确定您到底面临什么问题...
【讨论】:
嗯,一个应用程序可能有很多并行运行的线程。有些由您(编码员)运行,有些由框架类运行(尤其是如果您在 GUI 环境中)。
当一个线程完成其任务时,它会退出并停止存在。 即没有什么令人担忧的,你不应该关心。
【讨论】:
这只是调试消息。您可以通过右键单击输出窗口并取消选中 Thread Exit Messages 来关闭它。
http://msdn.microsoft.com/en-us/library/bs4c1wda.aspx
除了从您的应用程序中编程外,输出窗口 可以显示以下信息:
调试器已加载或卸载的模块。
抛出的异常。
退出的进程。
退出的线程。
【讨论】:
框架创建线程来支持您创建的每个窗口,例如,当您创建一个 Form 并 .Show() 它时。当窗口关闭时,线程终止(即,它们退出)。
这是正常行为。但是,如果应用程序正在创建线程,并且有很多与这些线程对应的线程退出消息(可以通过线程的名称来判断,通过在应用程序中给它们不同的名称),那么这可能表明存在问题由于程序逻辑错误,应用程序在不应该创建线程时创建线程。
让原始发布者让我们知道她/他发现了有关服务器崩溃问题的信息,这将是一个有趣的后续行动。我觉得这与此无关……但从发布的信息中很难判断。
【讨论】:
为了完成 BlueM 接受的答案, 您可以在此处停用它:
工具 > 选项 > 调试 > 常规输出设置 > 线程退出消息:关闭
【讨论】:
执行 Linq 查询会产生额外的线程。 当我尝试在即时窗口中执行使用 Linq 查询集合的代码时,它经常拒绝运行,因为调试器没有足够的线程可用。
正如其他人所说,线程完成后退出是完全正常的。
【讨论】:
我也遇到过这个问题,解决方法是:
我再次添加了这段代码,我的程序运行准确:
Application.Run(new PayrollSystem());
//File name this code removed by me accidentally.
【讨论】:
停止这个错误你必须遵循这个简单的步骤
然后使用快捷键Ctrl+f5运行代码
**否则直接运行时仍然显示错误
【讨论】: