VS调试器没有关闭

时间:2013-07-05 17:43:37

标签: wpf c#-4.0

我有以下代码。有谁能告诉我ut,c2实例会发生什么?他们会在没有被垃圾收集很长时间的情况下闲逛吗?我问的原因是,在我关闭所有窗口,包括执行此代码的窗口后,Visual Studio调试器仍处于打开状态(我在调试模式下运行它)。 如果我没有在Class2中的Initializer()方法中引发异常,则关闭所有窗口后调试器将关闭。

以下是代码

namespace Test
{
  public class Class1
  {

    private ICommand testCommand; 
    public ICommand TestCommand
    {
      get
      {
        return updCommand ?? (updCommand = new DelegateCommand(() =>
        {
          int nStatus = 0;
          Class2 c2 = new Class2();
          nStatus = c2.InitStatus;
          if (nStatus == 0)
          {
            c2.doSth()
          }
          System.Windows.MessageBox.Show("Return status = " + nStatus.ToString());
          c2 = null;
        }
        ));
      }
    }
  }

  public class Class2
  {
    Utilities ut = new Utilities();
    public int InitStatus { get; set; }

    public Dbupdate()
    {
      Initializer();
    }
    private void Initializer()
    {
      try
      {
        throw new Exception("just test");
      }
      catch (Exception ex) { ErrHandler("Initializer(): " + ex.Message); InitStatus = -100; }
    }

    private void doSth()
    {
      ut.doWhateve();
    }
  }
}

1 个答案:

答案 0 :(得分:0)

想出来。我实例化了一个窗口,但在抛出异常之前没有关闭。