使用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;
}
}


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





































