Здравствуйте, romangr, Вы писали:
R>Здравствуйте, catBasilio, Вы писали:
B>>неиспользуемые объекты будут держаться до заврешения программы.
B>>И попробуй убеди меня что это не утечка памяти. И я очень сомневаюсь gc при вызове "ручками" поймет что это некому не нажный код и удалит его.
B>>P.S. это высосанный из пальца пример, но проблему он показывает вполне.
R>Этот высосанный из пальца пример показывает, что ты не знаешь ни c#, ни то как работает gc.
Я, кстати, проверил только что. Есть приложение на WPF, вбил следующий Main:
public static void Main()
{
var d = new Test[1000000];
for (int i = 0; i < d.Length; i++)
{
d[i] = new Test();
}
d[23].F = 23;
d[230].F = 23;
MyApplication app = new MyApplication();
app.Run();
}
Test — простой класс с двумя-тремя свойствами, который в финализаторе показывает MessageBox.
Запустил в debug — массив жил на протяжении работы приложения.
Запустил в release, но из под Студии — массив жил на протяжении работы приложения.
Запустил в release просто из Проводника — объекты массива d начали собираться GC еще на этапе загрузки главного окна приложения.