none
如果非正常情况下退出程序的话,析构函数会不会运行呢 RRS feed

  • 问题

  • 比如说 在任务管理器中结束进程或者程序因为出错退出,这两种情况下,对象的析构函数会不会被运行呢?
    2010年2月24日 8:31

答案

  • 你好!
         这个问题十分容易验证,你在析构函数中写上这行代码:
        MessageBox.Show("析构函数被调用");
        马上就可以验证出来析构函数是否被调用了!
    周雪峰
    2010年2月24日 17:20
    版主

全部回复

  • 非正常退出程序好像析构函数不会被执行


    努力+方法=成功
    2010年2月24日 8:54
  • 你好!
         这个问题十分容易验证,你在析构函数中写上这行代码:
        MessageBox.Show("析构函数被调用");
        马上就可以验证出来析构函数是否被调用了!
    周雪峰
    2010年2月24日 17:20
    版主
  • 如果仅是抛出 .Net Framework 内的异常而导致的退出,是会执行析构函数的。因为一切尚在控制之中。 若是因为内存出错,或者指令异常之类的......不清楚,没有试过,同求答案。
    2010年2月25日 2:02