Информация об изменениях

Сообщение Re: WPF. Финализаторы не вызываются. Утечка памяти от 14.06.2020 16:21

Изменено 14.06.2020 16:57 takTak

Re: WPF. Финализаторы не вызываются. Утечка памяти
во-первых, при отладке код работает по-другому, если ты добавишь в деконструктор вот такой код:
 ~Item()
        {
            using (System.IO.StreamWriter file =    new System.IO.StreamWriter(System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), @"WriteLines.txt"), true))
            {
                file.WriteLine("Item's finalizer is called.");
            }
            Console.WriteLine("Item's finalizer is called.");
        }


скомпилируешь под релиз и запустишь, то ты увидишь, что ничего не отваливается, а деконструктор вызывается

во-вторых, проблема у тебя совсем другая, в wpf источники утечки, как правило , совсем другие, так что данный пример- не в тему
Re: WPF. Финализаторы не вызываются. Утечка памяти
во-первых, при отладке код работает по-другому, если ты добавишь в деконструктор вот такой код:
 ~Item()
        {
            using (System.IO.StreamWriter file =    new System.IO.StreamWriter(System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), @"WriteLines.txt"), true))
            {
                file.WriteLine("Item's finalizer is called.");
            }
            Console.WriteLine("Item's finalizer is called.");
        }


скомпилируешь под релиз и запустишь, то ты увидишь, что ничего не отваливается, а деконструктор вызывается

во-вторых, проблема у тебя совсем другая, в wpf источники утечки, как правило , совсем другие, так что данный пример- не в тему

сорри, надо и
do
            {
                Item item = new Item();
                GC.Collect();
                GC.WaitForPendingFinalizers();
            } while (true);


вызывать