Странное поведение 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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