次のコードをテストしました。ボタンをクリックすると、オブジェクトが作成され、リストに追加されます。別のボタンをクリックすると、リストがクリアされます
GC はオブジェクトを破棄していますが、メモリ使用量は減少しません。なんで?何か問題がありますか?
public partial class MainWindow : Window
{
public List<MyModel> MyList;
public MainWindow()
{
MyList = new List<MyModel>();
InitializeComponent();
}
private void button1_Click_1(object sender, RoutedEventArgs e)
{
MyList = new List<MyModel>();
for (int i = 0; i < 1000000; i++)
{
MyList.Add(new MyModel { ID = i, Description = "Model Id : " + i.ToString() });
}
MessageBox.Show("Complate!");
}
private void button1_Click_2(object sender, RoutedEventArgs e)
{
MyList.Clear();
MyList = null;
}
}
public class MyModel
{
~MyModel()
{
Console.WriteLine(Description);
}
public int ID { get; set; }
public string Description { get; set; }
}