WPF i wyjątek OutOfMemory

0

Cześć,
Mam problem. Poniżej przedstawiam wam prosty kod trzech okien w WPF.

Okno 3

 public partial class Window3 : Window
    {
        byte[] byt;
        public Window3()
        {
            InitializeComponent();

            byt = new byte[50000 * 1024];

        }
    }
 

Okno 2

  public partial class Window2 : Window
    {
        byte[] byt;
        public Window2()
        {
            InitializeComponent();

            byt = new byte[50000 * 1024];

            Window3 wn = new Window3();
        
        }
    }

 

Okno 1 (zawiera tylko przycisk button1)

public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            Window2 wn = new Window2();
            wn.ShowDialog();

        }
    }

 

Teraz w momencie gdy ok 10x wykonam operację:
Klikam na button1 (otwiera się okno 2)
Zamykam okno 2
Znowu klikam na button1 (otwiera się okno 2)
Zamykam okno 2
.
.
.
I tak ok 10x

W pewnym momencie dostaje wyjątek OutOfMemory.
Co jest przecież wszystkie zmienne są lokalne i gc powinien zwalniać pamięć?!

Ważnym elementem kodu jest zadeklarowanie Okna 3 w oknie 2. Bez tego wszystko działa ok. Sprawdzałem programami do profilowania pamięci (NET Memory Profiler) i okazało się, że pamięć ciągle rośnie aż aplikacja się wywala.

0

Naprawdę nikt nie potrafi odpowiedzieć na to pytanie?

0

Dodaj w Window2, np w OnClose, usuwanie WIndow3

1 użytkowników online, w tym zalogowanych: 0, gości: 1