VB.NET奇怪的输出消息;Uninit:还活着1“;

VB.NET奇怪的输出消息;Uninit:还活着1“;,vb.net,debugging,visual-studio-2012,output-window,Vb.net,Debugging,Visual Studio 2012,Output Window,我在调试模式下运行我的程序,然后关闭主窗体退出它 在输出窗口中,我可以看到以下消息: Uninit : Still Alive 1The program "[1432] App1.exe: Managed (v4.0.30319)" was ended with code 0 (0x0). 我想知道“Uninit:仍然活着1”是什么意思 有人知道吗??? 我总是很害怕在某个时刻发生一些意想不到的事情,而“仍然活着”这个信息对我来说并不是很有希望 谢谢你的帮助 这是使用生成的诊断消息。它存在于您

我在调试模式下运行我的程序,然后关闭主窗体退出它

在输出窗口中,我可以看到以下消息:

Uninit : Still Alive 1The program "[1432] App1.exe: Managed (v4.0.30319)" was ended with code 0 (0x0).
我想知道“Uninit:仍然活着1”是什么意思

有人知道吗??? 我总是很害怕在某个时刻发生一些意想不到的事情,而“仍然活着”这个信息对我来说并不是很有希望


谢谢你的帮助

这是使用生成的诊断消息。它存在于您依赖的一个DLL中。确切的含义需要解释,但“Uninit”是“Uninitialize”的缩写,这是DLL卸载时发生的事情。“仍然活着1”可能意味着DLL的程序员对您在拉动地板垫之前未正确关闭其组件感到恼火

消息缺少换行符(“\n”),这是程序员在使用OutputDebugString时犯的一个非常标准的错误

查找执行此操作的DLL的两种基本方法。第一种方法是启用带有Project+属性的非托管调试,在“调试”选项卡上,勾选“启用本机代码调试”复选框。DLL卸载通知应接近诊断消息


更可靠的方法是使用SysInternals的Process Explorer。选择您的进程并按Ctrl+D以列出它已加载的DLL。考虑到邮件的质量,您可能可以跳过那些拥有Microsoft版权的邮件。右键逐个单击DLL并查看“字符串”选项卡以查看DLL中的字符串。一旦您找到它,您应该从DLL名称中知道谁拥有该代码。询问他们如何正确关机。

请详细介绍您的程序。您正在加载任何库吗?你在做网络IO吗?多线程?您是否使用循环链接的数据结构?“仍然活着”通常指的是一个尚未关闭的套接字、一块仍在分配的内存或一个尚未退出的线程。消息是否具有确定性(即,您是否一直收到相同的消息?)如果您正在使用其他人的代码,请从源代码上的
find“Still Alive”*.bas*
开始。顺便说一句,此无帮助的调试消息可能指的是名为“Still Alive”的门户信用歌曲。如果您愿意,您可能会理解开发人员为什么选择这样的消息。