Métodos de descarte de CE de SQL Server, SQL Server 2005 Compact Edition ou SQL Server 2005 Mobile Edition de objetos gerenciados da memória

Traduções de Artigos Traduções de Artigos
Artigo: 834279 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Sumário

Este artigo discute as diferentes maneiras para descartar o gerenciado de objetos no Microsoft SQL Server 2000 Windows CE Edition, no Microsoft SQL Server 2005 Compact Edition ou no SQL Server 2005 Mobile Edition que são usados em aplicativos que você cria usando o Visual Studio da Microsoft.NET que usam o Microsoft.NET Compact Framework.

Mais Informação

A.NET Compact Framework para SQL Server 2005 Mobile Edition, o SQL Server 2005 Compact Edition ou SQL Server CE suporta uma coleção de classes, incluindo o SqlCeCommand classe, o SqlCeConnection classe, e o SqlCeDataReader classe. Você pode usar os objetos que são as instâncias desses classes para acessar um banco de dados do SQL Server 2005 Mobile Edition, SQL Server 2005 Compact Edition ou CE de SQL Server de dispositivos que estejam executando o Microsoft de Windows CE em um ambiente gerenciado. No entanto, você deve liberar a memória alocada para os objetos se os objetos não são mais necessários.

Você pode usar os seguintes métodos para liberar a memória alocada para o objetos de classes.

Observação A Microsoft recomenda que você use o Close) método ou a Dispose) método e a seguinte codificação de estilo para liberar a memória para o objetos da.NET classes que contêm nativo referências.
  • Use o Close) método ou a Dispose) método. Todas as classes que contêm nativo referências a CE de SQL Server, SQL Server 2005 Compact Edition ou SQL Server 2005 Mobile Edition implementam o IDisposable interface. Como essas classes implementam a IDisposable interface, o Dispose) método de o IDisposable interface pode ser usado para liberar a memória para o objeto gerenciado.

    Essas classes também implementam um Close) método de semelhante a Dispose) método. Portanto, você pode chamar qualquer um o Close)método ou a Dispose) método para liberar a memória alocada para o objeto. No entanto, se você chamar o Close) método, você não precisará chamar o Dispose) método.

    Por exemplo, quando você usa o SqlCeDataAdapter classe para preencher um dataset, você deve explicitamente dispose de todos os associadosSqlCeCommand instâncias que representam os comandos SELECT, comandos, comandos de atualização, de inserir ou excluir comandos. Você pode usar o estilo de codificação a seguir para qualquer.NET de classe que contém referências nativas:
     SqlCeConnection conn = null; 
     try
     {
    	 conn = new SqlCeConnection(<ConnectionString>);
    	 conn.Open(); 
    	// Work with the connection object
    }
    catch (Exception en)
    {
    	// Handle the exception or rethrow it
    }
    finally
    {
    	// Always release the native references in the finally clause
    	// The statements in finally clause are guaranteed to run
    
    	if (null != conn) conn.Close(); 
    } 
  • Use o Collect) método da GC Classe de coletor de lixo.

    Observação Ele é extremamente caro executar Collect) método da GC Classe de coletor de lixo. Portanto, a Microsoft recomenda que você use das Collect)método da GC Coletor de lixo classe somente quando você deverá fazê-lo.

    Usar o estilo de codificação a seguir para chamar o Collect)método do coletor de lixo em seu aplicativo:
    try
    {
           SqlCeConnection conn = null;
           conn = new SqlCeConnection(<ConnectionString>);
           conn.Open(); 
     
           // The connection instance goes out of scope and effectively loses native references here
           // The conn object is only disposed of when the Garbage Collector starts finalizing objects,
           // but this only occurs under memory pressure.
           // If many objects are allocated like this, the performance of the program decreases.
    }
    catch (Exception en)
    {
           // Handle the exception or rethrow it
    }
    finally
    { 
           // If GC.Collect() is called, the Garbage Collector is forced to run all the finalizers in the finalization queue. 
           // Therefore, the connection instance that was previously lost is disposed of here by the Collect method of the GC Garbage Collector class. 
           // By putting this in the finally clause we guarantee it will always be executed even if the exception is rethrown
           
           GC.Collect();
    }
     
    Se você usar o estilo de codificação no primeiro marcador nesta lista, você precisa chamar explicitamente oCollect) método do coletor de lixo.

Referências

Para obter mais informações sobre o IDisposable interface, visite o seguinte Web site da Microsoft:
. aspx do http://msdn2.microsoft.com/en-us/library/System.IDisposable (vs.71)
Para obter mais informações sobre o GC.Collect) método, visite o seguinte site da Microsoft:
. aspx do http://msdn2.microsoft.com/en-us/library/aa903907 (VS.71)
Para obter mais informações sobre o SqlCeConnection.Close método, visite o seguinte da Microsoft site:
. aspx do http://msdn2.microsoft.com/en-us/library/System.Data.SqlServerCe.SqlCeConnection.Close (vs.71)
Para obter mais informações, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
824462Objetos do SqlCeCommand não são descartados automaticamente se você usar um objeto SqlCeDataAdapter
326164 Utilitário de Dumpmem para exibir o espaço de endereço virtual no Pocket PC 2002
827837 CORREÇÃO: Conexão CE de SQL Server causa uma condição de falta de memória quando você cria vários objetos SqlCeDataReader

Propriedades

Artigo: 834279 - Última revisão: 13 de dezembro de 2011 - Revisão: 1.0
A informação contida neste artigo aplica-se a:
  • Microsoft .NET Compact Framework
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Professional Edition
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Academic Edition
  • Microsoft SQL Server 2005 Compact Edition
Palavras-chave: 
kbgarbagecollect kbmemory kbappdev kbcodesnippet kbcode kbinfo kbmt KB834279 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 834279

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com