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,则为共用对象保留的资源将保持可用。