Khi chúng tôi phân tích đống bộ nhớ, sau 4 loại GC handle chúng tôi thường đi qua:Khái niệm đằng sau 'Xử lý GC được ghim' là gì?
Yếu: - Một GC xử lý yếu sẽ không ngăn chặn các trường hợp nó tương ứng với từ được thu thập rác.
Example, used by the System.WeakReference class instances
.Bình thường: - Trình xử lý GC bình thường ngăn không cho trường hợp tương ứng bị thu gom rác.
Example, used by the instances of strong references
.RefCounted: - Một tay cầm tài liệu tham khảo tính GC được sử dụng trong nội bộ bởi thời gian chạy,
example, when dealing with COM interfaces.
Pinned: - Tại sao chúng ta cần loại GC xử lý? Là nó chỉ để tránh sự chuyển động của dụ rằng trong bộ nhớ hoặc
is there any other notion behind this? I want to know the notion behind Pinned GC handle(with an example).
Edited cho Itay của câu trả lời: - Tôi có một tổ chức phi rỗng array- DiffCell [] [] đó là ràng buộc vào lưới dữ liệu trong WPF. Khi tôi đóng cửa sổ mà lưới dữ liệu này là hiện nay, trên đống Tôi thấy Pinned GC xử lý trỏ đến này trống DiffCell mảng thông qua object [] (xem ảnh chụp). I am not using any unsafe code. I am just setting ItemsSource of data grid to null before closing that window. So my question is who does pin this array on heap and why?
Xin cảm ơn! Vui lòng xem câu hỏi đã chỉnh sửa và cho tôi biết nhận xét của bạn về nó. –
Tôi không thực sự biết làm thế nào WPF và ràng buộc làm việc vì vậy tôi sợ rằng tôi không thể giúp bạn ở đây. –