Metody vyřazení SQL Server CE, SQL Server 2005 Compact Edition nebo SQL Server 2005 Mobile Edition spravované objekty z paměti

Překlady článku Překlady článku
ID článku: 834279 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Souhrn

Tento článek popisuje různé způsoby vyřazení spravované objekty Microsoft SQL Server 2000 Windows CE vydání, Microsoft SQL Server 2005 zkomprimovat Edition nebo SQL Server 2005 Mobile Edition, které se používají v aplikacích, které vytvoříte pomocí Microsoft Visual Studio .NET, použít Microsoft .NET Compact Framework.

Další informace

Kompaktní zprostředkovatele dat .NET Framework pro SQL Server CE, SQL Server 2005 Compact Edition nebo SQL Server 2005 Mobile Edition podporuje kolekce tříd včetně SqlCeCommand třídy, třídy SqlCeConnection a SqlCeDataReader třídy. Pomocí objektů, které jsou instancí těchto tříd získat přístup k databázi SQL Server CE, SQL Server 2005 Compact Edition nebo SQL Server 2005 Mobile Edition ze zařízení jsou se systémem Microsoft Windows CE ve spravovaném prostředí. Musí však uvolnění paměti přidělené k objektům, pokud již nejsou požadované objekty.

Pomocí následujících metod můžete uvolnění paměti přidělené objekty tříd.

Poznámka: Společnost Microsoft doporučuje použít Close() metoda nebo metoda Dispose() a následující styl kódování k uvolnění paměti objekty třídy .NET, které obsahují nativní odkazy.
  • Použijte metodu Close() nebo metodu Dispose(). Všechny třídy, které obsahují nativní odkazy SQL Server CE, SQL Server 2005 Compact Edition nebo SQL Server 2005 Mobile Edition implementovat rozhraní IDisposable. Protože tyto třídy implementovat rozhraní IDisposable, metodu Dispose() rozhraní IDisposable lze použít k uvolnění paměti spravované objektu.

    Tyto třídy také implementovat metody Close() podobná metoda Dispose(). Proto volání buď Close()Dispose() metodu k uvolnění paměti přidělené k objektu nebo. Však Pokud volání metody Close() nemáte volat metodu Dispose().

    Například při použití třídy SqlCeDataAdapter k naplnění sady dat musí explicitně vyřazení všechny přidružené SqlCeCommand instance, které představují příkazy SELECT, INSERT příkazy, příkazy UPDATE nebo DELETE příkazy. Použít následující styl kódování pro všechny třídy .NET, která obsahuje nativní odkazy:
     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(); 
    } 
  • Použijte metodu Collect() třídy paměti kolekcí GC.

    Poznámka: Je velmi nákladné spustit Collect() metoda třídy paměti kolekcí GC. Společnost Microsoft proto doporučuje používat Collect() metodu třídy GC kolekcí paměti pouze tehdy, musíte tak učinit.

    Volání metody Collect() kolekcí paměti v aplikaci použít následující styl kódování:
    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
    } 
    	// 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. 
    	
    GC.Collect();
    Pokud kódování styl použít v první odrážky v tomto seznamu, není nutné explicitně vyvolat metodu Collect() kolekcí paměti.

Odkazy

Další informace o rozhraní IDisposable naleznete na následujícím webu:
http://msdn2.microsoft.com/en-us/library/system.idisposable(vs.71).aspx
Další informace o metodě GC.Collect() naleznete na následujícím webu:
http://msdn2.microsoft.com/en-us/library/aa903907(VS.71).aspx
Další informace o metodě SqlCeConnection.Close naleznete na následujícím webu:
http://msdn2.microsoft.com/en-us/library/system.data.sqlserverce.sqlceconnection.close(vs.71).aspx
Další informace naleznete v následujících článcích znalostní báze Microsoft Knowledge Base:
824462SqlCeCommand objekty není automaticky vyřazen Pokud pomocí objektu SqlCeDataAdapter
326164Nástroj pro prohlížení virtuálního adresového prostoru na Pocket PC 2002 Dumpmem
827837Oprava: SQL Server CE připojení způsobuje podmínku out paměti při vytvoření mnoho objektů SqlCeDataReader

Vlastnosti

ID článku: 834279 - Poslední aktualizace: 28. března 2008 - Revize: 5.5
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 2000 Windows CE Edition 2.0
  • 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
  • Microsoft SQL Server 2005 Mobile Edition
Klíčová slova: 
kbmt kbgarbagecollect kbmemory kbappdev kbcodesnippet kbcode kbinfo KB834279 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:834279

Dejte nám zpětnou vazbu

 

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