Tôi đang tạo nhiều điều khiển tùy chỉnh và thêm chúng vào FlowLayoutPanel. Ngoài ra còn có một ContextMenuStrip được tạo ra và phổ biến tại thời điểm thiết kế.Rò rỉ bộ nhớ với ContextMenuStrip
Mỗi khi điều khiển được thêm vào bảng, nó có thuộc tính ContextMenuStrip được gán cho menu này, để tất cả các điều khiển "chia sẻ" cùng một menu. Nhưng tôi nhận thấy khi các điều khiển được loại bỏ khỏi bảng điều khiển và xử lý, bộ nhớ được sử dụng trong Trình quản lý tác vụ không giảm. Nó tăng khoảng 50kB mỗi lần điều khiển được tạo và được thêm vào bảng điều khiển bố cục.
Tôi đã tải xuống bản dùng thử của .NET Memory Profiler và nó cho thấy có tham chiếu đến dải menu treo xung quanh sau khi các điều khiển đã được xử lý. Tôi đã thay đổi mã để thiết lập rõ ràng thuộc tính ContextMenuStrip thành null trước khi xử lý điều khiển, và yep, bộ nhớ hiện đã được giải phóng. Tại sao điều này? GC có nên làm sạch loại điều này không?
http://connect.microsoft.com/VisualStudio/feedback/details/116059/contextmenustrip-memory-leak – CharithJ