OleDbConnection.ReleaseObjectPool 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
指示可在释放最后一个基础连接时释放 OleDbConnection 对象池。
public:
static void ReleaseObjectPool();
public static void ReleaseObjectPool ();
static member ReleaseObjectPool : unit -> unit
Public Shared Sub ReleaseObjectPool ()
示例
以下示例创建 , OleDbConnection打开它,显示其某些属性,关闭连接,并释放对象池以节省资源。
static void OpenConnection(string connectionString)
{
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
try
{
connection.Open();
Console.WriteLine("Connection.State: {0}", connection.State);
connection.Close();
OleDbConnection.ReleaseObjectPool();
Console.WriteLine("Connection.State: {0}", connection.State);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
// The connection is automatically closed when the
// code exits the using block.
}
}
Public Sub OpenConnection(ByVal connectionString As String)
Using connection As New OleDbConnection(connectionString)
Try
connection.Open()
Console.WriteLine("Connection.State: {0}", _
connection.State)
connection.Close()
OleDbConnection.ReleaseObjectPool()
Console.WriteLine("Connection.State: {0}", _
connection.State)
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Using
End Sub
注解
ReleaseObjectPool
可以调用 来释放为共用 OleDbConnection 对象保留的资源。 例如,如果连接对象在 OLE DB 服务通常保持池连接处于活动状态的时间内不会再次使用,则可能需要调用此方法。 请注意,仅调用 方法实际上不会释放池中存在的活动连接。
在最终释放池之前,必须发生以下情况:
调用 Close 以将连接对象返回到池。
允许每个连接对象超时出池。
调用垃圾回收。
相反,如果对所有活动连接调用 Close ,并调用垃圾回收,但不调用 ReleaseObjectPool,则为共用对象保留的资源将保持可用。