none
用一个线程去执行一个操作,如果发生异常,该怎么处理? RRS feed

  • 问题

  • 用一个新的线程去执行一个操作,如果在执行的过程中抛出异常该怎么捕获?

    由于是在新的线程中执行操作,所以不能在调用的地方捕获异常,那么该如何捕获这个异常呢?
    2008年11月12日 3:54

答案

全部回复

  • 你好!
       可以在你的主线程中捕获新的线程中抛出的异常,也就是在调用的地方捕获。
    2008年11月12日 6:07
    版主
  •  

    Application.ThreadException 事件
    2008年11月12日 6:07
    版主
  •  周雪峰 写:
    你好!
       可以在你的主线程中捕获新的线程中抛出的异常,也就是在调用的地方捕获。


    以下代码在执行时并未捕获到任何异常

            System.Threading.Thread thread;

            private void Form1_Load(object sender, EventArgs e)
            {
                try
                {
                    thread = new System.Threading.Thread(new System.Threading.ThreadStart(a));
                    thread.Start();
                }
                catch (Exception)
                {
                }
            }
            void a()
            {
                throw new Exception("未知错误");
            }
    2008年11月12日 6:47