Metodi per lo smaltimento di SQL Server CE, SQL Server 2005 Compact Edition o SQL Server 2005 Mobile Edition gli oggetti vengono gestiti dalla memoria

Traduzione articoli Traduzione articoli
Identificativo articolo: 834279 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

Sommario

In questo articolo vengono descritti i diversi modi per smaltire i oggetti gestiti in Microsoft SQL Server 2000 Windows CE Edition, Microsoft SQL Server 2005 Compact Edition o SQL Server 2005 Mobile Edition che vengono utilizzati nelle applicazioni create utilizzando Microsoft Visual Studio.NET che utilizzano Microsoft.NET Compact Framework.

Informazioni

I.NET Compact Framework di SQL Server, CE, SQL Server 2005 Compact Edition o SQL Server 2005 Mobile Edition supporta un insieme di classi, tra cui il SqlCeCommand classe, il SqlCeConnection classe, e il Oggetto SqlCeDataReader classe. È possibile utilizzare gli oggetti che sono istanze di questi classi per l'accesso a un database SQL Server CE, SQL Server 2005 Compact Edition o SQL Server 2005 Mobile Edition da dispositivi che eseguono Microsoft Windows CE in un ambiente gestito. Tuttavia, è necessario rilasciare la memoria allocata per gli oggetti se gli oggetti non sono più necessari.

È possibile utilizzare i seguenti metodi per rilasciare la memoria allocata per il oggetti delle classi.

Nota Microsoft consiglia di utilizzare il Close) metodo o il Dispose) metodo e la codifica di stile per rilasciare la memoria per il gli oggetti del.NET che contengono nativo riferimenti.
  • Utilizzare il Close) metodo o il Dispose) metodo. Tutte le classi che contengono nativo implementano i riferimenti a SQL Server CE, per SQL Server 2005 Compact Edition o per SQL Server 2005 Mobile Edition il IDisposable interfaccia. Poiché queste classi implementano il IDisposable interfaccia, il Dispose) metodo di Verrà visualizzata la finestra di dialogo IDisposable interfaccia può essere utilizzato per rilasciare la memoria per il oggetto gestito.

    Queste classi implementa anche un Close) metodo è simile al Dispose) metodo. Di conseguenza, è possibile chiamare sia la Close)metodo o il Dispose) metodo per rilasciare la memoria allocata per il oggetto. Tuttavia, se si chiama il Close) metodo, non si dispone di chiamare il Dispose) metodo.

    Ad esempio, quando si utilizza il Oggetto SqlCeDataAdapter classe Per compilare un dataset, è necessario in modo esplicito dispose di tutti associatiSqlCeCommand istanze che rappresentano i comandi SELECT, inserire i comandi, i comandi di aggiornamento o eliminazione comandi. È possibile utilizzare lo stile di scrittura di codice riportato di seguito per qualsiasi.NET di classe che contiene i riferimenti nativi:
     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(); 
    } 
  • Utilizzare il Collect metodo del GC Classe Garbage Collector.

    Nota È estremamente costoso per l'esecuzione Collect metodo del GC Classe Garbage Collector. Di conseguenza, Microsoft consiglia di utilizzare del Collectmetodo del GC Classe Garbage Collector solo quando è necessario farlo.

    Utilizzare lo stile di scrittura di codice riportato di seguito per chiamare il Collectmetodo del Garbage Collector nell'applicazione:
    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 si utilizza uno stile di codifica il primo punto in questo elenco, non è necessario richiamare esplicitamente ilCollect metodo del Garbage Collector.

Riferimenti

Per ulteriori informazioni sui IDisposable interfaccia, visitare il sito Web Microsoft:
aspx http://msdn2.microsoft.com/en-us/library/System.IDisposable (vs.71)
Per ulteriori informazioni su Verrà visualizzata la finestra di dialogo CATALOGO GLOBALE.Collect metodo, visitare il seguente sito Web Microsoft:
aspx http://msdn2.microsoft.com/en-us/library/aa903907 (VS.71)
Per ulteriori informazioni su Verrà visualizzata la finestra di dialogo SqlCeConnection.Close metodo, visitare il seguente Web Microsoft sito:
aspx http://msdn2.microsoft.com/en-us/library/System.Data.SqlServerCe.SqlCeConnection.Close (vs.71)
Per ulteriori informazioni, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportato di seguito:
824462Gli oggetti di SqlCeCommand non vengono eliminati automaticamente se si utilizza un oggetto di oggetto SqlCeDataAdapter
326164 Dumpmem utilità per la visualizzazione dello spazio di indirizzi virtuali su Pocket PC 2002
827837 FIX: Connessione SQL Server CE provoca una condizione di memoria esaurita durante la creazione di molti oggetti SqlCeDataReader

Proprietà

Identificativo articolo: 834279 - Ultima modifica: martedì 13 dicembre 2011 - Revisione: 1.0
Le informazioni in questo articolo si applicano 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
Chiavi: 
kbgarbagecollect kbmemory kbappdev kbcodesnippet kbcode kbinfo kbmt KB834279 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 834279
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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