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