Странное поведение GarbageCollectorC#

Место общения программистов C#
Anonymous
Странное поведение GarbageCollector

Сообщение Anonymous »

Давайте возьмем этот простой пример: < /p>

Код: Выделить всё

public partial class MainWindow : Window
{
CustomWindow m_Window = new CustomWindow();

public MainWindow()
{
InitializeComponent();
m_Window.Activated += M_Window_Activated;
}

private void Button_Click(object sender, RoutedEventArgs e)
{
var listVariable = new List();

for (int i = 0; i < 100000; i++)
{
listVariable.Add(m_Window);
}
}

private void Button_Click_1(object sender, RoutedEventArgs e)
{
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
}

private void M_Window_Activated(object sender, EventArgs e)
{
throw new NotImplementedException();
}
}
in function button_click мы накапливаем постоянные элементы m_window во временном списке, так что, нормально, содержание этого списка не может быть собрано в конце объема функции, и я жду накопления памяти, но это не так.

Код: Выделить всё

listVariable
) Контент, содержащий элемент режимации (

Код: Выделить всё

m_Window
) со ссылкой += ?

Подробнее здесь: https://stackoverflow.com/questions/797 ... r-behavior

Вернуться в «C#»