Oczywiście wiem, że wywoływanie GC z kodu w zasadzie nigdy nie powinno mieć miejsca, a konieczność jego wywoływania to na 95% źle zaprojektowana aplikacja lub błędy w jej implementacji.
Krótkie i proste pytanie: Które z poniższych wywołań gwarantuje usunięcie WSZYSTKICH śmieci?
GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced);
GC.Collect(0, GCCollectionMode.Forced);
GC.Collect(2, GCCollectionMode.Forced);
Czy może jeszcze inne?
Nie chodzi o zagłębianie się w szczegóły działania sterty i GC, tylko o to, żeby poznać sposób na całkowite jej oczyszczenie (usunięcie wszystkich niedostępnych obiektów).
Wiem, że są 3 generacje obiektów i chodzi tu o to, jak zmieść obiekty wszystkich generacji, a nie tylko jednej.