Skąd mogę wiedzieć, czy obiekt został zebrany śmieci, czy nie?Jak określić, czy obiekt został zgubiony
8
A
Odpowiedz
24
Według this:
Normalnie nie mogę powiedzieć, czy obiekt został śmieci zbierane przy użyciu niektórych odwołanie do obiektu, bo skoro masz odniesienie do obiektu, to nie będą zbierane śmieci .
Zamiast tego można utworzyć słabe odniesienie do obiektu za pomocą obiektu WeakReference. Słabe odniesienie to takie, które nie zostanie policzone jako odniesienie dla celów zbierania śmieci.
W kodzie poniżej sprawdzamy przed i po zbieraniu śmieci, aby pokazać, że obiekt Dog jest zbiorem śmieci.
Dog dog = new Dog("Bowser");
WeakReference dogRef = new WeakReference(dog);
Console.WriteLine(dogRef.IsAlive);
dog = null;
GC.Collect();
Console.WriteLine(dogRef.IsAlive);
Powiązane problemy
- 1. Jak stwierdzić, czy obiekt NSManagedObject został zapisany?
- 2. Jak najlepiej sprawdzać, czy obiekt został zmieniony?
- 3. Czy można określić, jak długo proces został uruchomiony?
- 4. Jak określić, kiedy układ został narysowany?
- 5. Jak wykryć, czy obiekt został śmieci zebrane w JavaScript?
- 6. Obiekt dynamiczny - Jak określić, czy właściwość jest zdefiniowana?
- 7. Jak określić, czy obiekt lub odwołanie ma poprawną metodę wymuszania?
- 8. Czy można określić, kiedy element został wyrenderowany za pomocą JavaScript?
- 9. JPA: sprawdzić, czy obiekt został jednostka utrzymywała czy nie
- 10. Sprawdź, czy obiekt został utworzony czy nie w delphi
- 11. Zgubiony certyfikat dla opublikowanej aplikacji
- 12. Dlaczego obiekt Object.observe() został wycofany?
- 13. Microsoft SQL Server: Czy można określić, kiedy rekord został utworzony?
- 14. Pobierz obiekt bazy danych django obiekt został zapytany od
- 15. Błąd: Obiekt został usunięty lub unieważniony. (Realm)
- 16. Rails 3 fields_for - porządek sortowania zostaje zgubiony
- 17. Jak określić, który obiekt JSON jest używany (Crockford's lub inny)?
- 18. Jak uzyskać obiekt, który został zmieniony w angularjs?
- 19. Obiekt nawigatora w javascript. Jak określić wszystkie właściwości
- 20. Formularz onSubmit określić, które przedkłada przycisk został naciśnięty
- 21. Czy Soundex został ulepszony?
- 22. Jak używać moq do sprawdzenia, czy podobny obiekt został przekazany jako argument?
- 23. Jak sprawdzić, czy wpis session_start został wprowadzony?
- 24. Jak sprawdzić, czy komputer został ponownie uruchomiony?
- 25. akka: jak sprawdzić, czy aktor został zatrzymany
- 26. Jak sprawdzić, czy plik został zmodyfikowany?
- 27. Jak się dowiedzieć, czy plik został zmodyfikowany?
- 28. Jak sprawdzić, czy klawisz Insert został przytrzymany?
- 29. Jak sprawdzić, czy wyjątek nie został odrzucony?
- 30. Jak mogę sprawdzić, czy CGPoint został zainicjowany?
do 'duplikat' pytanie nie jest bardzo specyficzny, więc ponownie. To zadaje konkretne pytanie i ma konkretną odpowiedź. – leppie