C#~异步编程再续~你必须要知道的ThreadPool里的throw

问题依旧存在

之前写过相关文章异步编程的文章,本文主要还是一点补充,之前在IIS经常发w3wp进程无做挂了的情况,但一直没能找到真正的原因,而查找相关资料,找了一些相关的文章,如await和async引起的线程死锁,也都进行了分析,但和我们项目的情况有些不同,因为在我们项目里只用了ThreadPool和Task.Run这种线程池,而异步用了也是异步到底的

今天无意中看到一个文章,说到了在ThreadPool中如果出现异常,并且你没有捕捉它,直接throw了,这时也会引用w3wp进程的死掉,我在电脑上试了一下,确实有这种情况,于是很兴奋!

在事件查看器里的截图

aaarticlea/png;base64,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" alt="" />

aaarticlea/png;base64,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" alt="" />

最后将我的线程池方法进行了改良,解决了这个问题

优化后的代码

   /// <summary>
/// 线程管理
/// </summary>
public class ThreadManager
{
/// <summary>
/// 将在线程池上运行的指定工作排队
/// </summary>
/// <param name="action"></param>
public static void Run(Action action)
{
ThreadPool.QueueUserWorkItem(u =>
{
try
{
action();
}
catch (Exception ex)
{
Lind.DDD.Logger.LoggerFactory.Instance.Logger_Error(ex);
}
}); } }

下面我自己做了一个测试,在.net里的4种开启新线程的方式,及它们是否会引起w3wp服务挂掉,做了一个对比,请看代码

      ThreadPool.QueueUserWorkItem((o) =>//w3wp会有挂机问题
{
var b = ;
var c = / b;
}); Task.Run(() => //不会有挂机问题
{
var b = ;
var c = / b;
}); new Thread(() =>//w3wp会有挂机问题
{
var b = ;
var c = / b; }).Start(); Task.Factory.StartNew(() =>//不会有挂机问题
{
var b = ;
var c = / b;
});

最后,很高兴找到又一个引起w3wp进程挂掉的原因,希望这次可以真正解决这个问题!

上一篇:survey on Time Series Analysis Lib


下一篇:网页webbrowser