sql Server ce, sql Server 2005 Compact Edition veya sql Server 2005 Mobile Edition atma yöntemleri nesneleri bellekten yönetilen

Makale çevirileri Makale çevirileri
Makale numarası: 834279 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Özet

Elden çıkarmak farklı yolları anlatılmaktadır Microsoft Visual Studio kullanarak oluşturduğunuz uygulamalarda kullanılan nesneler Microsoft sql Server 2000 Windows ce Edition, Microsoft sql Server 2005 Compact Edition veya sql Server 2005 Mobile Edition yönetiliyor.net, Microsoft kullanın.net Compact Framework.

Daha fazla bilgi

.sql Server ce, sql Server 2005 Compact Edition veya sql Server 2005 Mobile Edition net Compact Framework veri sağlayıcısı sınıflar da dahil olmak üzere, topluluğu destekler SqlCeCommand sınıf, SqlCeConnection sınıf, ve SqlCeDataReader sınıf. Bu örnekleri olan nesneler kullanabilirsiniz. Microsoft Windows ce çalıştıran aygıtlardan bir sql Server ce, sql Server 2005 Compact Edition veya sql Server 2005 Mobile Edition veritabanı erişim kazanmak için sınıfları Yönetilen ortamlarda. Ayrılan bellek serbest bırakın ancak, nesneler artık gerekmiyorsa, nesnelere.

İçin ayrılan belleği serbest bırakmak için aşağıdaki yöntemleri kullanın sınıfların nesnelerini.

Not Microsoft, kullanmanızı önerir Close() yöntem veya Dispose() yöntem ve aşağıdaki kodlama stili için belleği serbest bırakmak için nesnelerin.Yerel içeren net sınıfları başvurular.
  • Kullan Close() yöntem veya Dispose() yöntem. Yerel içeren tüm sınıfları sql Server ce, sql Server 2005 Compact Edition veya sql Server 2005 Mobile Edition başvuruları uygulamak IDisposal arabirim. Bu sınıfların uyguladığı için IDisposal arabirim, Dispose() yöntemi , IDisposal arabirim için belleği serbest bırakmak için kullanılabilir yönetilen nesne.

    Bu sınıflar da uygulayan bir Close() olan yöntemi benzer şekilde Dispose() yöntem. Bu nedenle, ya da çağırabilirsiniz Close()yöntem veya Dispose() yöntem için ayrılan belleği serbest bırakmak için Nesne. Ancak, arama Close() yöntemi, gerek yoktur Çağrı Dispose() yöntem.

    Örneğin, kullandığınızda SqlCeDataAdapter sınıf Bir DataSet'i doldurmak için açıkça tüm atma gerekir ilişkiliSqlCeCommand select komutları temsil eden örneklerin komutları, güncelleştirme komutları ekleme veya silme komutları. Aşağıdaki kodlama stili için kullanabilirsiniz.net sınıf doğal başvurular içerir:
     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(); 
    } 
  • Kullan Collect() yöntemi GC Çöp toplayıcı sınıf.

    Not Çalıştırmak son derece pahalı Collect() yöntemi GC Çöp toplayıcı sınıf. Bu nedenle, Microsoft, kullanmanızı önerir. Collect()yöntemi GC Çöp toplayıcı sınıfı, yalnızca bunu yapmalısınız.

    Çağırmak için aşağıdaki kodlama stilini kullan Collect()Çöp toplayıcı uygulamanızdaki yöntemi:
    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();
    }
     
    Bu listedeki ilk maddesinde kodlama stilini kullanıyorsanız, açıkça gerekmezCollect() Çöp toplayıcı yöntemi.

Referanslar

Hakkında daha fazla bilgi için IDisposal arabirim, ziyaret edin aşağıdaki Microsoft Web sitesi:
http://msdn2.microsoft.com/en-us/library/System.idisposable (vs.71) .aspx
Hakkında daha fazla bilgi için , GC.Collect() yöntem, aşağıdaki Microsoft Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/aa903907 (vs.71) .aspx
Hakkında daha fazla bilgi için , SqlCeConnection.Close yöntem, aşağıdaki Microsoft Web sitesini ziyaret site:
http://msdn2.microsoft.com/en-us/library/System.Data.SqlServerCe.sqlceconnection.Close (vs.71) .aspx
Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
824462SqlCeDataAdapter nesnesi kullanırsanız, SqlCeCommand nesneleri otomatik olarak atılmış değil
326164 Pocket pc 2002'de sanal adres alanı görüntülemek için Dumpmem yardımcı programı
827837 Düzeltme: çok sayıda SqlCeDataReader nesne oluşturduğunuzda, sql Server ce bağlantı bellek yetersiz koşul neden

Özellikler

Makale numarası: 834279 - Last Review: 13 Aralık 2011 Salı - Gözden geçirme: 1.0
Bu makaledeki bilginin uygulandığı durum:
  • 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
Anahtar Kelimeler: 
kbgarbagecollect kbmemory kbappdev kbcodesnippet kbcode kbinfo kbmt KB834279 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:834279

Geri Bildirim Ver

 

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