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,保留給池中物件的資源仍可使用。

適用於

另請參閱