Tham chiếu mềm và ảo đến từ Java, tôi tin. Một tham chiếu dài yếu (chuyển true cho hàm tạo WeakReference của C#) có thể được coi là tương tự như PhantomReference của Java. Nếu có một tương tự với SoftReference trong C#, tôi không biết nó là gì.
Tham chiếu yếu không kéo dài tuổi thọ của một đối tượng, do đó cho phép nó được thu thập rác khi tất cả các tham chiếu mạnh đã đi ra khỏi phạm vi. Chúng có thể hữu ích cho việc giữ các đối tượng lớn tốn kém để khởi tạo, nhưng nên có sẵn để thu gom rác nếu chúng không chủ động sử dụng.
Việc điều này có hữu ích trong việc giảm mức tiêu thụ bộ nhớ của ứng dụng của bạn hay không sẽ phụ thuộc hoàn toàn vào các chi tiết cụ thể của ứng dụng. Ví dụ: nếu bạn có một số lượng vừa phải các đối tượng được lưu trong bộ nhớ cache treo xung quanh có thể hoặc không được sử dụng lại trong tương lai, các tham chiếu yếu có thể giúp cải thiện mức tiêu thụ bộ nhớ của bộ đệm. Tuy nhiên, nếu ứng dụng đang làm việc với một số lượng lớn các đối tượng nhỏ, tham chiếu yếu sẽ làm cho vấn đề tồi tệ hơn vì các đối tượng tham chiếu sẽ chiếm nhiều hoặc nhiều bộ nhớ.
Nguồn
2008-11-22 02:00:52
Ứng dụng của bạn có sử dụng lớp System.WeakReference không? – MusiGenesis