c#线程池中的异常

Posted heavenspring

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#线程池中的异常相关的知识,希望对你有一定的参考价值。

  static void Main(string[] args)
        {
            //写日志
            //使用线程池
            for (int i = 0; i < 1000; i++)
            {
                ThreadPool.QueueUserWorkItem(new WaitCallback(ReceiveMessage), i);
            }
            
            Console.ReadKey();
        }

        private static void ReceiveMessage(object index)
        {
            Thread.Sleep(100);
            int b = 0;
            try
            {
                if (index.ToString() == "50")
                {
                    Console.WriteLine(100 / b);
                }
                else
                {
                    Console.WriteLine(index.ToString());
                }
            }
            catch (Exception)
            {
                Console.WriteLine(index+":出错");
            }
           
           
        }

以上是测试代码,结论如下:

1.线程池中的异常不做处理:会导致整个程序的闪退

2.针对异常代码添加异常处理机制:不影响其他线程的执行
技术图片

 

以上是关于c#线程池中的异常的主要内容,如果未能解决你的问题,请参考以下文章

京东二面:线程池中的线程抛出了异常,该如何处理?大部分人都会答错!

Java并发程序设计线程池之异常终止和正常关闭

20210601 线程池中的异常处理

20210601 线程池中的异常处理

线程池中某个线程执行有异常,该如何处理?

线程池中某个线程执行有异常,该如何处理?