Tôi đang học C#. Từ những gì tôi biết, bạn phải thiết lập mọi thứ một cách chính xác để có bộ thu gom rác thực sự xóa tất cả mọi thứ như nó phải được. Tôi đang tìm kiếm sự khôn ngoan đã học được qua nhiều năm từ bạn, người thông minh.Các cách để giải quyết Rò rỉ bộ nhớ trong C#
Tôi đến từ nền C++ và được sử dụng cho các mẫu mã và mẫu phát triển. Tôi muốn tìm hiểu những gì mùi mã giống như trong C#. Cho tôi lời khuyên!
Cách tốt nhất để xóa mọi thứ là gì?
Làm thế nào bạn có thể tìm ra khi nào bạn bị "rò rỉ bộ nhớ"?
Edit: Tôi cố gắng để phát triển một cú đấm-danh sách các "công cụ để luôn luôn làm cho việc quản lý bộ nhớ"
Cảm ơn, rất nhiều.
That "hoặc" rất khó hiểu - ngay cả đối tượng IDisposable sẽ trở thành rác. GC không biết gì về IDisposable. Thường Dispose() gọi SuppressFinalize, nhưng đó là không liên quan. –
Điểm tốt. Vì vậy, các lớp có chứa là rác thu thập được, nhưng đó là tài nguyên được explicit deallocated. Tôi chưa bao giờ nghĩ về điều đó. –
"Có thể giả định rằng các loại được quản lý luôn được thu thập rác." Tuyên bố này rất sai. Không có gì có thể được thu thập rác nếu nó vẫn có thể đạt được, lập trình viên phải luôn luôn có trong tâm trí để vô hiệu hóa tài liệu tham khảo gốc của mình khi không còn cần thiết. –