首先我创建了一个system.timer.timer,而不是system.windows.forms.timer
System.Timers.Timer timer1 = new System.Timers.Timer();
..
            timer1.Interval = 10;
            timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Tick);
            timer1.Enabled = true;
            timer1.Start();
..        private void timer1_Tick(object sender, System.Timers.ElapsedEventArgs e)
        {
           ....
           //--某个地方发生了错误并且没捕获到
        }
.....
我定义了一个全局的捕获系统未捕获到的错误
void unhandled_exception(..)
{
}
但是timer1中发生错误后,根本就没有进入到全部捕获错误处理过程中,
而用System.Windows.Forms.Timer却可以,请问有人遇到过这个问题吗?

解决方案 »

  1.   

    System.Windows.Forms.Timer不是独立的线程,仅仅是主线程模拟的,是属于主线程,所以全局的捕获系统可以捕获,
    system.timer.timer是独立线程
    主线程指的是主窗口那个线程
      

  2.   

    不太清楚。
    只用过System.Windows.Forms.Timer
    不知楼上给你的解释是否合理
      

  3.   

    既然system.timer.timer是独立线程的,那为什么我建立一个thread,里面发生错误却可以进入到全局错误捕获过程,
    而system.timer.timer却不行了?thread也是独立线程啊,这怎么解释了
      

  4.   

    thread不会进入到全局错误捕获过程
      

  5.   

    但是thread发生错误后却是进入了全部错误捕获过程的