如果一个页面,我使用了dataset和几个服务器控件,我想手动得释放他们占用得资源。我在page_unload事件里使用
Dispose()方法,我发现我不指定对象使用Dispose(),也可以编译通过,请问这样使用有效果吗?

解决方案 »

  1.   

    最晚打开链接,最早释放资源。一般来说,你将sqldataadapter.fill 到一个dataset的时候,sqldataadapter就可以dispose了。
    将fill的结果赋给一个datatable对象后,dataset也可以dispose
      

  2.   

    直接在打开的时候用using(.......)也可以,这个是手动兼自动的dispose()
      

  3.   

    文件IO 或 数据库操作后,请及时dispose()
      

  4.   

    我发现我不指定对象使用Dispose(),  应该默认释放了整个页面的对象!
      

  5.   

    Dispose方法确保对象在销毁时能够清楚不能够被垃圾回收器回收的非托管资源,Dispose方法在对象销毁时被垃圾回收期调用,所以手动执行是毫无意义的自作聪明之举。由于对象销毁的时间不确定,所以Disponse方法被执行的时间也不确定,如果要立即回收资源的话可以使用Using结构,Dispose方法在使用Using后能够在退出Using块之后被立即执行。
      

  6.   

    using()的话,怎么搞,有没有代码,贴点上来
      

  7.   

    using()的话,怎么搞,有没有代码
      

  8.   

    using System.Drawing;
    class a
    {
       public static void Main()
       {
          using (Font MyFont = new Font("Arial", 10.0f), MyFont2 = new Font("Arial", 10.0f))
          {
             // use MyFont and MyFont2
          }   // compiler will call Dispose on MyFont and MyFont2      Font MyFont3 = new Font("Arial", 10.0f);
          using (MyFont3)
          {
             // use MyFont3
          }   // compiler will call Dispose on MyFont3   }
    }
      

  9.   

    using(SqlConnection myConnection = new SqlConnection(myConnectionString))
    {
        string myInsertQuery = "Drop Table [MyTable]";
        SqlCommand myCommand = new SqlCommand(myInsertQuery);
        myCommand.Connection = myConnection;
        myConnection.Open();
        myCommand.ExecuteNonQuery();
        myCommand.Connection.Close();
    }