Phương pháp định đoạt của SQL Server CE, SQL Server 2005 Compact Edition hoặc SQL Server 2005 Mobile Edition quản lý các đối tượng từ bộ nhớ

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:834279
Bài viết này đã được lưu trữ. Bài viết được cung cấp "nguyên trạng" và sẽ không còn được cập nhật nữa.
TÓM TẮT
Bài viết này thảo luận về những cách khác nhau để vứt bỏ các quản lý các đối tượng trong Microsoft SQL Server 2000 Windows CE Edition, Microsoft SQL Server 2005 Compact Edition, hoặc trong SQL Server 2005 Mobile Edition được sử dụng trong các ứng dụng mà bạn tạo ra bằng cách sử dụng Microsoft Visual Studio.NET mà sử dụng Microsoft.NET Compact Framework.
THÔNG TIN THÊM
Các.NET Compact Framework dữ liệu nhà cung cấp cho SQL Server CE, SQL Server 2005 Compact Edition hoặc phiên bản điện thoại di động SQL Server 2005 hỗ trợ một bộ sưu tập của các lớp học, bao gồm cả các SqlCeCommand lớp học, các SqlCeConnection lớp học, và các SqlCeDataReader lớp học. Bạn có thể sử dụng các đối tượng những trường hợp này các lớp học để được truy cập vào cơ sở dữ liệu SQL Server CE, SQL Server 2005 Compact Edition hoặc SQL Server 2005 Mobile Edition từ thiết bị đang chạy Microsoft Windows CE trong một môi trường được quản lý. Tuy nhiên, bạn phải phát hành bộ nhớ được cấp phát cho các đối tượng nếu các đối tượng không còn cần thiết.

Bạn có thể sử dụng các phương pháp sau đây để giải phóng bộ nhớ được cấp phát cho các các đối tượng của các lớp học.

Lưu ý Microsoft khuyến cáo bạn sử dụng các Close() phương pháp hoặc các Dispose() phương pháp và sau mã hóa phong cách để giải phóng bộ nhớ cho các các đối tượng của các.Các lớp học NET có chứa bản xứ tài liệu tham khảo.
  • Sử dụng các Close() phương pháp hoặc các Dispose() phương pháp. Tất cả các lớp học có chứa bản xứ tài liệu tham khảo cho SQL Server CE, SQL Server 2005 Compact Edition, hoặc SQL Server 2005 Mobile Edition thực hiện các IDisposable giao diện. Bởi vì các lớp học thực hiện các IDisposable giao diện, các Dispose() phương pháp các IDisposable giao diện có thể được sử dụng để giải phóng bộ nhớ cho các đối tượng được quản lý.

    Các lớp học cũng thực hiện một Close() phương pháp là tương tự như các Dispose() phương pháp. Vì vậy, bạn có thể gọi hoặc là các Close()phương pháp hoặc các Dispose() phương pháp để giải phóng bộ nhớ được cấp phát cho các đối tượng. Tuy nhiên, nếu bạn gọi các Close() phương pháp, bạn không cần phải gọi cho các Dispose() phương pháp.

    Ví dụ, khi bạn sử dụng các SqlCeDataAdapter lớp học cư một tập dữ liệu, bạn rõ ràng phải vứt bỏ tất cả các liên kếtSqlCeCommand trường hợp mà đại diện cho chọn lệnh, đưa vào lệnh, Cập Nhật lệnh, hay xóa lệnh. Bạn có thể sử dụng phong cách mã hóa sau cho bất kỳ.NET lớp mà chi này có nguồn gốc tài liệu tham khảo:
     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(); } 
  • Sử dụng các Collect() phương pháp của các GC Garbage Collector lớp.

    Lưu ý Nó là cực kỳ tốn kém để chạy Collect() phương pháp của các GC Garbage Collector lớp. Vì vậy, Microsoft khuyến cáo rằng bạn sử dụng của các Collect()phương pháp của các GC Garbage Collector lớp chỉ khi bạn phải làm như vậy.

    Sử dụng phong cách mã hóa sau đây để gọi các Collect()phương pháp của các bộ thu rác trong ứng dụng của bạ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}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();} 
    Nếu bạn sử dụng phong cách mã hóa trong điểm đạn đầu tiên trong danh sách này, bạn không phải một cách rõ ràng gọi cácCollect() phương pháp của các bộ thu rác.
THAM KHẢO
Để biết thêm thông tin về các IDisposable giao diện, truy cập vào các Microsoft Web site sau: Để biết thêm thông tin về các GC.Collect() phương pháp, ghé thăm Web site sau của Microsoft: Để biết thêm thông tin về các SqlCeConnection.Close phương pháp, truy cập vào các trang Web Microsoft sau đây Trang web:Để biết thêm chi tiết, nhấp vào số bài viết sau để xem các bài viết trong cơ sở kiến thức Microsoft:
824462SqlCeCommand đối tượng không tự động disposed nếu bạn sử dụng một đối tượng SqlCeDataAdapter
326164 Dumpmem tiện ích cho xem không gian địa chỉ ảo trên Pocket PC 2002
827837 Khắc phục: SQL Server CE kết nối gây ra bộ nhớ một điều kiện khi bạn tạo nhiều SqlCeDataReader đối tượng
gọi miễn phí l'a thực hiện chức năng

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 834279 - Xem lại Lần cuối: 12/08/2015 05:52:00 - Bản sửa đổi: 1.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

  • kbnosurvey kbarchive kbgarbagecollect kbmemory kbappdev kbcodesnippet kbcode kbinfo kbmt KB834279 KbMtvi
Phản hồi