OleDbConnection.ReleaseObjectPool 方法

定义

指示 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 服务通常保持共用连接处于活动状态的时间量内,则可能需要调用此方法。 请注意,单独调用该方法实际上不会释放池中存在的活动连接。

在最终释放池之前,必须发生以下情况:

  1. 调用 Close 以将连接对象返回到池。

  2. 允许每个连接对象超时池。

  3. 调用 ReleaseObjectPool

  4. 调用垃圾回收。

相反,如果调用 Close 所有活动连接并调用垃圾回收,但不调用 ReleaseObjectPool,则为共用对象保留的资源将保持可用。

适用于

另请参阅