【发布时间】:2011-10-02 23:44:43
【问题描述】:
我不确定为什么会发生这种情况,而且我从未明确中止线程,所以这有点令人惊讶。但是我记录了异常并且我看到了:
System.Threading.ThreadAbortException - 线程被中止。
这似乎发生在对System.Threading.WaitHandle.WaitOne 的调用中。我不确定这个异常能走多远。我认为我的线程永远不会终止,因为我会捕获日志并吞下错误。
为什么会出现这些错误?也许是当我强行终止我的服务器或要求它重新启动时?如果不是,那可能是什么原因造成的?
【问题讨论】:
-
你能显示你在 Application_Start 中的代码吗?
-
@rick:我不知道你希望找到什么,但这里有一个 sn-p。
var obj1=new MyServiceObject(); srv1 = new Thread(obj1.Queue); ... srv1.Start()。请注意, obj1 不在 using 块内,因此不会过早处理。它只是我在启动时产生的一个普通线程 -
我的猜测是您的 srv1 变量正在失去作用域并杀死线程。您需要等待它完成,或将范围更改为更高级别的范围。 (我意识到这个答案晚了 10 年;但是,我认为其他人可能会看到这个。)我在登录 asp.net 应用程序时遇到了类似的问题——我试图登录一个单独的线程,但线程一直挂掉.在我更改了分配给它的变量的范围后,垃圾收集器不理会它。