创建 一个监视的方法,放到application对象中                    System.Timers.Timer t = new System.Timers.Timer(timerInt);
                    t.Elapsed += Theout;
                    t.AutoReset = true;
                    t.Enabled = true;                    Application.Add("MachineTimer", t);关闭 清空 application对象                if (null != Application["MachineTimer"])
                    Application["MachineTimer"] = null;这里清空赋值为NULL后,监视方法依然在执行!难道是因为 Timer 对象这里只是引用,而application中设置为NULL的时候,此Timer对象还在,但是它会在以后被GC垃圾回收吗?

解决方案 »

  1.   

    Application[]你可以理解成集合Application.Add("MachineTimer", t);
    是在集合中新增一项Application["MachineTimer"] = null;
    是删除集合指定项注意你只是从集合中无法访问到 Application["MachineTimer"]而已而Application["MachineTimer"] 之前的内容 并没有消失你应该显示的System.Timers.Timer t = Application["MachineTimer"] as System.Timers.Timer ;
    if(t!=null)
    {
          t.Close();
    }
    Application["MachineTimer"] = null;
      

  2.   

    application.contents.removeall 
    application.Contents.Remove("变量名")