Tôi đã có một ứng dụng từ lâu, mà trả lại dữ liệu hình ảnh, và đặt nó trên một PictureBox như kết quả, giống như một đường ống của động cơ đồ họa, ...
Điều đồ điểm chung với bạn, là thiếu trí nhớ, nó giống như thế này, ...
- 66%
- 67%
- 68%
- 69%
- 70%
- 71%
- 72%
- 73%
- 74%
- 70%-> Auto rác Thu
- 71%
- 72%
- 73%
- 74%
- 75%
- 76%
- 77%
- 78%
- 79%
- 80%
- 81%
- 77%-> Auto rác Thu
- 78%
- 79%
- .
- .
- .
Và rất nhiều Auto rác Thu tại bộ nhớ cao khoảng 90% xuống còn 97%, ... nhưng dường như nó vẫn chưa đủ, và tại một số điểm xung quanh 97% và hệ thống 98% (ứng dụng) đã gặp sự cố với bộ nhớ ...
vì vậy tôi đi kèm với ý tưởng này, để gọi bộ thu gom rác mỗi vài khung hình, vì vậy tôi đã thực hiện điều này: GC.Collect();
GC.Collect nó tự là nặng, cũng có khi có quá nhiều đối tượng bên trong bộ nhớ, ... nhưng khi bạn không để lại quá nhiều đối tượng, nó hoạt động trơn tru, ...
có cũng có nhiều điều về việc hoàn thiện các đối tượng, nhưng tôi không chắc liệu chúng có hoạt động đúng hay không, vì chúng tự nhiên kết thúc bằng -> x = null
có nghĩa là chúng tôi đã phá vỡ liên kết đến đối tượng đó, nhưng không có nghĩa là chúng ta không có đối tượng này một số nơi xung quanh thiên hà (ví dụ bạn có thể điền vào đối tượng destructor với một tin nhắn, và xem sau khi rời khỏi đối tượng đó sẽ không bị phá hủy ngay lập tức, nó cho đến khi bạn đóng ứng dụng của bạn/gọi GC.Collect/Lack vào bộ nhớ , hoặc có thể thu thập tự động ngẫu nhiên), ... unti l nó bị phá hủy, ... như vậy, ví dụ như chỉ thị "sử dụng", nó tự gọi là "Vứt bỏ" phương pháp, và chúng tôi điền vào xử lý của chúng tôi với obj = null, ... sau đó tôi không chắc chắn nếu tôi nên giới thiệu bạn viết phương pháp hoàn thiện thủ công, nhưng vẫn có một thứ ... có một đối tượng Marshal, mà tôi không biết nó đến từ đâu, và nếu nó hoạt động trên tất cả đối tượng, tôi thấy một số lập trình viên sử dụng nó để giải phóng các đối tượng, .. ., tôi không biết nó hoạt động như thế nào, nhưng nó có thể thực sự giải phóng đối tượng khỏi kí ức của chúng ta, ...
Nếu bạn không tìm thấy bất cứ điều gì hữu ích về nó, lựa chọn đầu tiên của tôi sẽ được gọi GC.Collect ...
bạn cũng có thể thiết lập nó là thông số, vì vậy nó thu thập ít đối tượng, hơn nó sẽ làm như thường lệ.
https://msdn.microsoft.com/en-us/library/xe0c2357%28v=vs.110%29.aspx
Release resources in .Net C#
tôi cũng không đọc đầy đủ, nhưng dường như ông có chủ đề và bộ nhớ vấn đề: Freeing resources when thread is not alive
Xin lỗi, .NET framework 4.5. –
Có lẽ vì bạn đang tạo chủ đề mới cho đến khi bạn hết bộ nhớ, trừ khi tôi thiếu một số thứ ở đây. – MikeTheLiar
@mikeTheLiar các nhà sưu tập rác nên chăm sóc đó, các trường hợp tất cả lỏng lẻo tham chiếu của họ. –