C# czy formy zajmują RAM?

0

Witam, nurtuje mnie pewne pytanie, mianowicie jeśli mam kilka form wraz z tłem i wieloma kontrolkami, ale tylko jedna jest wyświetlona to czy one też zżerają pamięć RAM? Do wyświetlania używam metody ShowDialog, po zamknięciu .Dispose(). Będę wdzięczny za wszystkie odpowiedzi.

1

Każdy utworzony obiekt zajmuje pamięć, dopóki nie zostanie z niej usunięty przez Garbage Collector.

0

Ale chodzi mi o to, czy lepiej jest utworzyć w projekcie 1 dodatkową formę i potem przy uruchamianiu w zależności od tego do czego ma być przeznaczona zmieniać jej tło i dodawać kontrolki, czy utworzyć w projekcie kilka form każda do czegoś innego. Piszę grę Milionerzy i nie wiem czy te wszystkie formy w projekcie (jeszcze przed ich pokazaniem) też zajmują RAM.

3

lepiej jest utworzyć w projekcie 1 dodatkową formę i potem przy uruchamianiu w zależności od tego do czego ma być przeznaczona zmieniać jej tło i dodawać kontrolki

Zależy. W kontekście milionerów - jeżeli chciałbyś tworzyć osobną formę na każde pytanie/etap to jest to zły pomysł.
Natomiast, jeżeli forma zawiera zupełnie inną treść (opcje/o programie itp), to powinieneś mieć osobną formę.

Piszę grę Milionerzy i nie wiem czy te wszystkie formy w projekcie (jeszcze przed ich pokazaniem) też zajmują RAM.

Tak jak pisał somekind - każdy utworzony obiekt zajmuje pamięć. W uproszczeniu - póki nie zrobisz new FormX(), to pamięci ona nie zajmuje. Dlaczego tak martwisz się RAMem?

1

Forma zajmuje pamięć (i zasoby systemu operacyjnego, m.in. uchwyt okna) od new aż do Dispose.
Pewną niewielką ilość pamięci zajmuje nawet potem, aż garbage collector nie zniszczy obiektu.

Ale kwestia pamięci nie powinna grać roli w decyzji, czy chcesz mieć jedną formę w programie czy kilka.

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