OleDbConnection.ReleaseObjectPool Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Indica que o OleDbConnection object pool pode ser libertado quando a última ligação subjacente for libertada.
public:
static void ReleaseObjectPool();
public static void ReleaseObjectPool();
static member ReleaseObjectPool : unit -> unit
Public Shared Sub ReleaseObjectPool ()
Exemplos
O exemplo seguinte cria um OleDbConnection, abre-o, apresenta algumas das suas propriedades, fecha a ligação e liberta o conjunto de objetos para conservar recursos.
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
Observações
ReleaseObjectPool pode ser chamado a recursos livres que, de outra forma, seriam reservados para objetos agrupados OleDbConnection . Pode querer chamar este método se, por exemplo, o objeto de ligação não for usado novamente durante o tempo em que os serviços OLE DB normalmente mantêm as ligações em pool ativas. Note que chamar o método sozinho não liberta realmente as ligações ativas que existem no pool.
O seguinte deve ocorrer antes de o pool ser finalmente eliminado:
Chamar Close para devolver o objeto de ligação ao pool.
Permita que cada objeto de ligação expire o tempo fora do pool.
Ligue para o ReleaseObjectPool.
Invocar a recolha de lixo.
Por outro lado, se invocar Close todas as ligações ativas e invocar a recolha de lixo, mas não chamar ReleaseObjectPool, os recursos reservados para os objetos agrupados permanecerão disponíveis.