Я использую две формы в приложении Windows. Например, Form1()
и Form2()
, и я работаю над 32-битной архитектурой в Visual Studio . Form1 и form2 включает в себя около 50 МБ данных.
Когда я закрывал form1 (), а затем открывал form2 (), я ожидал, что данные из form1 будут 50 Мб автоматически удаляться из оперативной памяти. Но это так не работает. Когда я открывал диспетчер задач form2, мне показывалось примерно 100 МБ, а когда я возвращался, стек все еще увеличивался до исключения systemoutofmemory. Я не понимаю, почему сборщик мусора или метод удаления формы не очищают данные из стека?
Я пытался использовать метод dispose form и сборщик мусора, чтобы очистить данные от оперативной памяти. Тем не менее оба они бесполезны для меня.
некоторый блок кода после того, как я закончил свою работу
Я открою форму2
Form2 frm2=new Form2();
this.hide();
frm2.opendialog();
Я ожидал 50 МБ памяти для работающей программы, однако в результате получился 100 МБ сборщик мусора, или метод удаления не сработал.