Verfahren zur Entsorgung von SQL Server CE, SQL Server 2005 Compact Edition oder SQL Server 2005 Mobile Edition verwaltete Objekte aus dem Speicher

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 834279 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Zusammenfassung

Dieser Artikel beschreibt die verschiedenen Möglichkeiten zum Entsorgen der verwaltete Objekte in Microsoft SQL Server 2000 Windows CE Edition, Microsoft SQL Server 2005 Compact Edition oder SQL Server 2005 Mobile Edition, die in Anwendungen, die Sie erstellen verwendet werden mithilfe von Microsoft Visual Studio.NET, die die Verwendung von Microsoft.NET Compact Framework.

Weitere Informationen

Die.NET Compact Framework-Datenanbieter für SQL Server CE, SQL Server 2005 Compact Edition oder SQL Server 2005 Mobile Edition unterstützt eine Auflistung von Klassen, einschließlich der SqlCeCommand Klasse, die SqlCeConnection -Klasse und die SqlCeDataReader -Klasse. Sie können die Objekte verwenden, die die Instanzen dieser sind Klassen, die auf einer Datenbank SQL Server CE, SQL Server 2005 Compact Edition oder SQL Server 2005 Mobile Edition Geräte zugreifen, die in Microsoft Windows CE laufen einer verwalteten Umgebung. Allerdings müssen Sie den Speicher freigeben, der zugeordnet wird die Objekte, wenn die Objekte nicht mehr benötigt werden.

Können Sie die folgenden Methoden verwenden, um den Speicher freizugeben, die zugeordnet ist die Objekte der Klassen.

Hinweis Microsoft empfiehlt die Verwendung der Close() Methode oder der Dispose() Methode und die folgenden coding style zur Freigabe des Arbeitsspeichers für die Objekte von der.NET-Klassen, die systemeigene enthalten. verweist auf.
  • Verwendung der Close() Methode oder der Dispose() -Methode. Alle Klassen, die systemeigene enthalten. Verweise auf SQL Server CE, SQL Server 2005 Compact Edition oder SQL Server 2005 Mobile Edition implementieren die IDisposable Schnittstelle. Da diese Klassen implementieren die IDisposable Schnittstelle, die Dispose() Methode der Das Dialogfeld IDisposable Schnittstellen kann verwendet werden, zur Freigabe des Arbeitsspeichers für die verwaltetes Objekt.

    Auch diese Klassen implementieren eine Close() Methode, die ähnlich wie die Dispose() -Methode. Aus diesem Grund können Sie entweder die Close()Methode oder der Dispose() Methode, um den Speicher freizugeben, die zugeordnet ist die -Objekt. Jedoch, wenn Sie aufrufen, die Close() Methode, Sie müssen nicht Rufen Sie die Dispose() -Methode.

    Z. B. bei Verwendung der SqlCeDataAdapter Klasse um ein Dataset zu füllen, Sie müssen explizit entfernen, um alle zugeordnetenSqlCeCommand Instanzen, die SELECT-Befehle darstellen-Befehle, aktualisieren, einfügen oder löschen Befehle. Sie können die folgenden Codierungsstil für alle verwenden.NET-Klasse, die systemeigene Verweise enthält:
     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(); 
    } 
  • Verwendung der Collect() Methode der GC Garbage Collection-Klasse.

    Hinweis Es ist extrem teuer ausführen Collect() Methode der GC Garbage Collection-Klasse. Microsoft empfiehlt daher, die Verwendung der Collect()Methode der GC Garbage Collection-Klasse nur, wenn Sie dies tun müssen.

    Verwenden Sie die folgenden Codierungsstil aufrufen, die Collect()die Methode des Garbage Collectors in Ihrer Anwendung:
    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();
    }
     
    Wenn Sie den Codierungsstil im ersten Punkt in dieser Liste verwenden, müssen Sie nicht explizit aufrufen, dieCollect() der Garbage Collector-Methode.

Informationsquellen

Weitere Informationen zu den IDisposable Schnittstelle, besuchen Sie die folgende Microsoft-Website: Weitere Informationen zu Das Dialogfeld GC.Collect() Methode, die folgende Microsoft-Website: Weitere Informationen zu Das Dialogfeld SqlCeConnection.Close Methode, finden Sie auf der folgenden Microsoft-Website Website:Weitere Informationen finden Sie die folgenden Artikelnummern klicken, um die Artikel der Microsoft Knowledge Base anzuzeigen:
824462SqlCeCommand-Objekte werden nicht automatisch freigegeben, wenn Sie eine SqlCeDataAdapter-Objekts verwenden
326164 Dumpmem-Dienstprogramm zum Anzeigen von virtuellen Adressraum auf Pocket PC 2002
827837 Update: Verursacht SQL Server CE-Verbindung eine Out-of-Memory-Bedingung, wenn Sie viele SqlCeDataReader-Objekte erstellen

Eigenschaften

Artikel-ID: 834279 - Geändert am: Dienstag, 13. Dezember 2011 - Version: 1.0
Die Informationen in diesem Artikel beziehen sich auf:
  • 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
Keywords: 
kbgarbagecollect kbmemory kbappdev kbcodesnippet kbcode kbinfo kbmt KB834279 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 834279
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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