-1

我遇到了一个非常奇怪的问题。我敢肯定它的东西很小,但我正在把头发拉出来……

我正在将第三方库集成到我的应用程序中。我下载了这个库,它附带了示例代码。我能够毫无问题地构建和运行示例代码。我将 lib + 示例代码复制到我自己的解决方案文件夹中,而不更改两个项目中的任何内容,将它们添加到我自己的解决方案中,构建并运行。我在示例应用程序结束时收到 ThreadAbortException。这曾经在单独的文件夹中工作?!!!?!

该代码在侦听线程中打开一个套接字连接。线程监视和使用套接字信息。然后在程序退出之前,它会执行一个 runner.Abort() ,其中 runner 是线程。我想不通的是,为什么它没有在其原始解压缩文件夹中抛出 ThreadAbortException 。但是当我完全复制到我自己的解决方案中时它会抛出?

我没有看到任何使用 Thread.ResetAbort()。

在这方面需要一些帮助。提前致谢。

我尝试过:更改 .net 框架版本(无论我如何更改,原始目录都会运行良好,但我自己的解决方案会因 ThreadAbortException 而窒息)

这是在 Visual Studio 2013 社区版上。

感谢您的阅读。

下面编辑***

配置文件是相同的。bin 目录显示生成的 pdb 文件大小不同,但其他文件的大小似乎相同。不起作用的代码具有较小的 pdb 文件。

我删除了 lib 项目和示例项目的原始目录的 bin,从示例项目中删除了引用并从解决方案中重新添加。构建,并且它构建相同的大小(比其他解决方案大)。运行它并在没有 ThreadAbortException 的情况下正常退出。然后我在自己的解决方案下做了同样的事情,它使用更小的 pdb 构建,并且出现了 ThreadAbortException

我还验证了 Visual Studio 的两个实例都是 2013 社区。

4

1 回答 1

1

我最终创建了一个全新的解决方案,将第三方项目放在那里。然后将我的旧项目一一添加到新的解决方案中。我仍然不清楚它为什么会发生。但我现在要继续前进。

于 2015-12-11T06:56:51.243 回答