1

我在通用 try catch 块(捕获所有异常)中得到 C# 中的 ThreadAbortException - 但是,我无法对其进行跟踪,表明它可能在托管代码之外被杀死。

我得到一个 HRESULT 代码 -2146233040,解码时:

FACILITY_URT 19 - .NET CLR

代码 0x1530 - COR_E_THREADABORTED

扔到一个线程中导致它中止。抓不住。

任何想法如何追踪这只野兽?

4

1 回答 1

1

这是由引发 a 的调用Thread.Abort()引起的ThreadAbortException

请注意,您无法阻止 aThreadAbortException的传播,即使它是由托管代码抛出的。你可以抓住它,但你不能忽视它。

如果您查看此链接并进行搜索,COR_E_THREADABORTED您会发现它用于ThreadAbortException.

可能有一种方法可以找到引发此异常的位置:

如果您可以在 Visual Studio 调试器下运行它,请转到菜单项Debug | Exceptions,然后勾选“托管调试助手”旁边的抛出列中的复选框。(如果你愿意,你可以勾选throws列中的所有项目。)然后在调试器下运行程序,看看是否有任何弹出。

于 2013-05-03T20:49:33.690 回答