3

我有一个多线程的 C#“控制台”应用程序,其中有很多线程完成了。我所有的线程都退出了。90% 的时间应用程序优雅地退出。但是有 10% 的情况下,我的应用程序副本仍然存在:控制台仍然打开。

我通过 Visual Studio 2010 附加到它并使用 break 来中断它,并显示两个“空”堆栈帧:一个用于 Main,一个用于我的应用程序创建的线程之一。堆栈上也没有任何东西。如果我单击这些线程中的任何一个,Visual Studio 会说“源代码不适用于该线程”,并且它提供了一个“已解密的代码视图”链接。我点击它,它说“反汇编代码不适用于该线程”。

有什么想法我可能做错了吗?

4

1 回答 1

2

您的代码是否会在额外的几分钟后关闭。可能是某些 .net 帮助程序 thead 或垃圾收集线程仍在运行。这可能需要一些额外的时间。

您是在运行调试版本还是发布版本,并且您确定该过程不是那些出于设计目的而持续运行的 Visual Studio 托管过程之一。

于 2011-01-17T15:04:31.137 回答