用IDisposable接口释放.NET资源

    使用Dispose 模式能够适当地释放资源,但会增加系统开销.
    通过使用Dispose模式可以适当地释放非内存资源,比如数据库连接、Win32 interop组件和操作系统的句柄。你不要指望垃圾收集器能够立即将资源释放掉,因为垃圾收集器是由于管制堆(Managed Heap)的内存紧张时才触发的。你可以快速消耗掉例如数据库连接等少量资源,但会给程序的扩展性造成副面影响。在不必要的时候不能实现Dispose模 式,因为它可能会增加系统开销,而这在很多情况下是可以避免的.
    在.NET当中Dispose 模式是由一个IDisposable接口来实现的,以下示例是消除 Connection和 Command 对象如下:
using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.Data.SqlClient;

namespace  Topchinaz.DataSystem
{
    
/// <summary>
    
/// Base interface for all database access objects.
    
/// </summary>

    public class IDBAccess :IDisposable
    
{
        
private SqlConnection m_objConnection = null;
        
private SqlCommand m_objCommand = null;


        
/// <summary>
        
/// Cleanup
        
/// </summary>

        public void Dispose()
        
{
            
if (m_objCommand != null)
            
{
                m_objCommand.Dispose();
                m_objCommand 
= null;
            }


            
if (m_objConnection != null)
            
{
                m_objConnection.Dispose();
                m_objConnection 
= null;
            }

        }



    }

}


你可能感兴趣的:(.net)