我遇到了一个非常奇怪的问题。我确信它的东西很小但是我正在把这头发拉出来......
我正在努力将第三方库集成到我的应用程序中。我下载了lib,它附带了示例代码。我能够毫无问题地构建和运行示例代码。我将lib +示例代码复制到我自己的解决方案文件夹中,而不更改两个项目中的任何内容,将它们添加到我自己的解决方案中,构建并运行。我在示例应用程序的末尾得到了ThreadAbortException。这曾经在单独的文件夹中工作?!!?!
代码在侦听线程中打开套接字连接。线程监视并使用套接字信息。然后在程序退出之前,它会运行一个runner.Abort(),其中runner是线程。我无法弄清楚的是,为什么它不会在其原始的解压缩文件夹中抛出ThreadAbortException。但是,当我完全复制到我自己的解决方案中时,它会抛出?
我没有看到任何使用Thread.ResetAbort()。
需要一些帮助。提前谢谢。
我尝试过: 更改.net框架版本(无论我如何更改,原始目录都会正常运行,但我自己的解决方案会在ThreadAbortException上出现阻塞)
这是在Visual Studio 2013社区版上。
感谢您的阅读。
编辑以下***
配置文件完全相同。 bin目录显示生成的pdb文件具有大小差异,但其他文件的大小似乎相同。不起作用的代码具有较小的pdb文件。
我删除了lib项目和示例项目的原始目录bin,从示例项目中删除了引用并从解决方案中重新添加它。构建,并建立相同的大小(比其他解决方案更大)。跑吧,没有ThreadAbortException它就退出了。然后我在我自己的解决方案下做了同样的事情,它用较小的pdb构建并且出现了ThreadAbortException
我还验证了Visual Studio的两个实例都是2013社区。 p>
答案 0 :(得分:1)
我最终创建了一个全新的解决方案,将第三方项目放在那里。然后逐个在新解决方案中添加我的旧项目。我还不清楚为什么会这样。但我现在要继续前进。