Metodele de evacuare SQL Server CE, SQL Server 2005 Compact Edition sau SQL Server 2005 Mobile Edition a reușit obiecte din memoria

Traduceri articole Traduceri articole
ID articol: 834279 - View products that this article applies to.
Măriți totul | Reduceți totul

REZUMAT

Acest articol discută despre diferite moduri de a dispune de gestionează obiecte în Microsoft SQL Server 2000 Windows CE Edition, în Microsoft SQL Server 2005 Compact Edition, sau în SQL Server 2005 Mobile Edition care sunt utilizate în aplicații care creați utilizând Microsoft Visual Studio.NET care utilizează Microsoft.NET Compact cadru.

INFORMAȚII SUPLIMENTARE

.NET Compact cadru date Provider for SQL Server CE, SQL Server 2005 Compact Edition sau SQL Server 2005 Edition Mobile suportă o colecție de clase, inclusiv SqlCeCommand clasa, SqlCeConnection clasa, și SqlCeDataReader clasa. Aveți posibilitatea să utilizați obiectele care sunt instanțele acestea clase pentru a avea acces la o bază de date SQL Server CE, SQL Server 2005 Compact Edition sau SQL Server 2005 Mobile Edition de dispozitive care se execută Microsoft Windows CE în un mediu gestionat. Cu toate acestea, trebuie să eliberați memorie care este alocat la obiecte dacă obiectele nu mai sunt necesare.

Puteți utiliza următoarele metode pentru a elibera memorie care este alocat obiecte din clasele de asigurare.

Notă Microsoft recomandă să utilizați Close() metoda sau Dispose() metoda și codificare următorul stil pentru a elibera memorie pentru obiecte.Clasele NET care conțin nativ referințe.
  • Utilizarea Close() metoda sau Dispose() metoda. Toate clasele care conțin nativ Trimiterile la SQL Server CE, SQL Server 2005 Compact Edition sau la SQL Server 2005 Mobile Edition punerea în aplicare IDisposable interfață. Deoarece punerea în aplicare a acestor clase IDisposable interfață, Dispose() metoda de The IDisposable interfața poate fi folosit pentru a elibera memorie pentru obiect gestionate.

    Aceste clase, de asemenea, pune în aplicare un Close() metoda care este similar cu Dispose() metoda. Prin urmare, puteți apela fie Close()metoda sau Dispose() metoda pentru a elibera memorie care este alocat obiect. Cu toate acestea, dacă suni Close() metoda, tu nu trebuie să apel Dispose() metoda.

    De exemplu, când utilizați SqlCeDataAdapter Clasa pentru a popula un set de date, trebuie să dispună în mod explicit de toate asociateSqlCeCommand instanțe care reprezintă SELECTAȚI comenzi, comenzi, comenzi de actualizare, Inserare sau Ștergere comenzi. Puteți utiliza următoarea codificare stil pentru orice.NET clasa care conține referințe nativ:
     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(); 
    } 
  • Utilizarea Collect() metoda de GC Colectorul gunoiului de clasă.

    Notă Este extrem de costisitoare pentru a rula Collect() metoda de GC Colectorul gunoiului de clasă. Prin urmare, Microsoft recomandă să utilizați de Collect()metoda de GC Colectorul gunoiului clasa doar atunci când trebuie să faci acest lucru.

    Utilizați stilul de codificare următorul pentru a apela Collect()metoda de Colectorul gunoiului în cererea dumneavoastră:
    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();
    }
     
    Dacă utilizați stilul de codificare în primul punct marcator în această listă, nu trebuie să invoce în mod explicitCollect() metoda de Colectorul gunoiului.

REFERINȚE

Pentru mai multe informații despre IDisposable interfață, vizitați următorul site Web Microsoft:
http://msdn2.Microsoft.com/en-us/library/System.idisposable (vs.71) .aspx
Pentru mai multe informații despre The GC.Collect() metoda, vizitați următorul site Web Microsoft:
http://msdn2.Microsoft.com/en-us/library/aa903907 (VS.71) .aspx
Pentru mai multe informații despre The SqlCeConnection.Close metoda, vizitați următoarele Microsoft Web site-ul:
http://msdn2.Microsoft.com/en-us/library/System.data.sqlserverce.sqlceconnection.Close (vs.71) .aspx
Pentru mai multe informații, faceți clic pe următoarele numere de articol pentru a vedea articolele în baza de cunoștințe Microsoft:
824462SqlCeCommand obiecte nu sunt automat înstrăinate dacă utilizați un obiect SqlCeDataAdapter
326164 Dumpmem utilitate pentru vizualizarea spațiului de adrese virtuale pe Pocket PC 2002
827837 FIX: Conexiune SQL Server CE cauzează o condiție afară-de-memorie când creați mai multe obiecte SqlCeDataReader

Proprietă?i

ID articol: 834279 - Ultima examinare: 13 decembrie 2011 - Revizie: 1.0
SE APLICĂ LA:
  • 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
Cuvinte cheie: 
kbgarbagecollect kbmemory kbappdev kbcodesnippet kbcode kbinfo kbmt KB834279 KbMtro
Traducere automată
IMPORTANT: Acest articol a fost tradus de software-ul de traducere automată Microsoft, si nu de un traducător. Microsoft vă oferă atât articole traduse de persoane, cât și articole traduse automat, astfel incat aveti access la toate articolele din Baza noastră de informatii în limba dvs. materna. Totuși, un articol tradus automat nu este întotdeauna perfect. Acesta poate conține greșeli de vocabular, sintaxă sau gramatică, la fel cum un vorbitor străin poate face greșeli vorbind limba dvs. materna. Compania Microsoft nu este responsabilă pentru nici o inexactitate, eroare sau daună cauzată de traducerea necorespunzătoare a conținutului sau de utilizarea traducerii necorespunzătoare de către clienții nostri. De asemenea, Microsoft actualizează frecvent software-ul de traducere automată.
Face?i clic aici pentru a vizualiza versiunea în limba engleză a acestui articol:834279

Trimite?i feedback

 

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