Tôi có một ứng dụng C# bao gồm một Pivot với nhiều Pivotitems. Pivotitems bình thường dỡ bỏ đúng cách và không làm rò rỉ bộ nhớ. Mặc dù vậy, trên hai mặt hàng, tôi có Drawingsurfaces mà tôi sử dụng Monogame để tạo ra các mô hình 3D. Khi dỡ và tải các chốt của chúng, tôi đang cố gắng phá hủy hoàn toàn và sau đó tái tạo hoàn toàn các game "Game" (chủ yếu là vì Monogame không cho phép bạn vẽ hai bề mặt vào lúc này và vì chúng sử dụng nhiều bộ nhớ và có không đủ cho cả hai).C# Làm thế nào để loại bỏ hoàn toàn đối tượng khỏi bộ nhớ
Vấn đề của tôi xuất hiện khi tôi vứt bỏ Xamlgame được tạo khi tải nó không giải phóng tất cả bộ nhớ mà nó đã sử dụng. Điều này có nghĩa là mỗi khi tôi tạo lại Xamlgame, nó chỉ bắt đầu sử dụng nhiều bộ nhớ hơn cho đến khi không còn gì nữa. Vì vậy, tôi muốn biết nếu có bất kỳ cách nào C# để xử lý hoàn toàn tất cả bộ nhớ đã được đưa vào sử dụng khi tải một đối tượng.
Bất kỳ cách cụ thể nào của Monogame cũng sẽ được đánh giá cao. Tại thời điểm đầu tiên tôi xử lý vertex và index buffer, sau đó tôi xóa các đỉnh và danh sách chỉ mục, sau đó xử lý Basiceffect và Graphicsdevicemanager của mình, sau đó tôi gọi nó là "game" và cuối cùng tôi tạo biến chứa "trò chơi" bằng null.
PS. Nếu bạn đã từng làm điều này trong XNA thì bạn cũng có thể giúp tôi vì cú pháp về cơ bản giống nhau.
EDIT (Có thể MonoGame bug):
bây giờ tôi đã được quản lý để làm sạch tất cả các bộ đệm, vv lên đúng cách. Vẫn còn một rò rỉ bộ nhớ trên BasicEffect của tôi mặc dù. Tôi đã thử xử lý nó và làm cho nó null nhưng không có vấn đề gì nó chỉ giữ sử dụng nhiều hơn và nhiều hơn nữa bộ nhớ mỗi khi tôi tải lại trục của tôi.
Nếu bạn đang xử lý tất cả các tài nguyên 'IDisposable' thì thực hiện [' GC.Collect'] (http://msdn.microsoft.com/en-us/library/System.GC.Collect.aspx) không công việc? – Romoku
Tôi đang gọi nó nhưng nó dường như không có hiệu lực – Gerharddc
bạn có chắc chắn rằng bạn đang xử lý tất cả các kết nối và các mục? bạn có thể chia sẻ mã của bạn không? –