Méthodes d'élimination de SQL Server CE, SQL Server 2005 Compact Edition ou SQL Server 2005 Mobile Edition des objets managés à partir de la mémoire

Traductions disponibles Traductions disponibles
Numéro d'article: 834279 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Résumé

Cet article décrit les différentes façons d'éliminer le objets Microsoft SQL Server 2000 Windows CE Edition, Microsoft SQL Server 2005 Compact Edition ou SQL Server 2005 Mobile Edition sont utilisés dans les applications que vous créez à l'aide de Microsoft Visual Studio gérés par.NET qui utilisent Microsoft.NET Compact Framework.

Plus d'informations

Le fichier.NET Compact Framework Data Provider pour SQL Server CE, SQL Server 2005 Compact Edition ou SQL Server 2005 Mobile Edition prend en charge une collection de classes, y compris la SqlCeCommand (classe), le SqlCeConnection (classe), et le SqlCeDataReader classe. Vous pouvez utiliser les objets qui sont des instances de ces Pour accéder à une base de données SQL Server CE, SQL Server 2005 Compact Edition ou SQL Server 2005 Mobile Edition à partir de périphériques qui exécutent Microsoft Windows CE dans les classes un environnement géré. Toutefois, vous devez libérer la mémoire est allouée pour les objets si les objets ne sont plus nécessaires.

Vous pouvez utiliser les méthodes suivantes pour libérer la mémoire allouée à la objets des classes.

Remarque Microsoft recommande d'utiliser le Close() méthode ou la Dispose() méthode et le codage de style pour libérer la mémoire pour le objets de la.NET qui contiennent natif références.
  • Utiliser le Close() méthode ou la Dispose() méthode. Toutes les classes qui contiennent natif implémentent des références à SQL Server CE, SQL Server 2005 Compact Edition ou SQL Server 2005 Mobile Edition le IDisposable interface. Étant donné que ces classes implémentent la IDisposable interface, le Dispose() méthode de le IDisposable interface peut être utilisée pour libérer la mémoire pour le objet managé.

    Ces classes implémentent également une Close() méthode qui est similaire à la Dispose() méthode. Par conséquent, vous pouvez appeler soit la Close()méthode ou la Dispose() méthode pour libérer la mémoire allouée à la objet. Toutefois, si vous appelez le Close() méthode, vous n'avez pas à Appelez le Dispose() méthode.

    Par exemple, lorsque vous utilisez le SqlCeDataAdapter classe pour remplir un dataset, vous devez explicitement dispose de tous les associésSqlCeCommand les instances qui représentent les commandes SELECT, insérer des commandes, commandes de mise à jour ou supprimer commandes. Vous pouvez utiliser le style de codage suivant pour tous.NET de classe qui contient des références natives :
     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(); 
    } 
  • Utiliser le Collect() méthode de la GC Classe Garbage Collector.

    Remarque Il est extrêmement onéreuse Collect() méthode de la GC Classe Garbage Collector. Par conséquent, Microsoft recommande l'utilisation de la Collect()méthode de la GC « Garbage Collector » classe uniquement lorsque vous devez le faire.

    Utilisez le style de codage suivant pour appeler le Collect()méthode du Garbage Collector dans votre application :
    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();
    }
     
    Si vous utilisez le style de codage dans la première puce de cette liste, vous ne disposez pas d'appeler explicitement laCollect() méthode du Garbage Collector.

Références

Pour plus d'informations sur la IDisposable l'interface, visitez le site Web de Microsoft suivant :
.aspx http://msdn2.Microsoft.com/en-us/library/System.IDisposable (vs.71)
Pour plus d'informations sur le GC.Collect() méthode, reportez-vous au site Web de Microsoft à l'adresse suivante :
.aspx http://msdn2.Microsoft.com/en-us/library/aa903907 (VS.71)
Pour plus d'informations sur le SqlCeConnection.Close méthode, visitez le site Web Microsoft suivant site :
.aspx http://msdn2.Microsoft.com/en-us/library/System.Data.SqlServerCe.SqlCeConnection.Close (vs.71)
Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :
824462Objets SqlCeCommand ne sont pas automatiquement supprimés si vous utilisez un objet SqlCeDataAdapter
326164 Utilitaire Dumpmem pour afficher l'espace d'adressage virtuel sur Pocket PC 2002
827837 CORRIGER : Connexion SQL Server CE provoque une condition de mémoire insuffisante lors de la création de nombreux objets SqlCeDataReader

Propriétés

Numéro d'article: 834279 - Dernière mise à jour: mardi 13 décembre 2011 - Version: 1.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft .NET Compact Framework
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Professional
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Éducation
  • Microsoft SQL Server 2005 Compact Edition
Mots-clés : 
kbgarbagecollect kbmemory kbappdev kbcodesnippet kbcode kbinfo kbmt KB834279 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 834279
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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