Code Bye

应用程序池回收时程序不停的抛ThreadAbortException

Web程序,在应用程序池回收的时候会不停的抛ThreadAbortException异常.先上代码和异常日志.


程序是一个静态类,静态方法里面起一个线程,线程阻塞队列里面拿数据然后插入到数据库中.理论上当程序被回收的时候线程会抛出一个ThreadAbortException异常,然后在catch里被捕获,打印日志.catch处理完成后会自动被抛出.
但是目前的现象是程序会不停的打印ThreadAbortException异常到日志中,感觉就像catch捕获了异常后没有把异常抛出,直接进入不停抛异常-打印日志的死循环中.而且该情况是偶发,不一定每次回收应用程序池都会触发.大部分情况下回收后打印一条异常就结束了.
有没有高手能够分析一下这个反常的情况是怎么回事么?
解决方案

15

把 Thread 声明成全局静态的试下呢。

15

代码里调用thread.Abort了吗?

10

线程函数中,调用list的时候加锁了么?
list是静态的,每个线程都用它,不加锁的话,大家一起操作?

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明应用程序池回收时程序不停的抛ThreadAbortException