C# を使用してメモリ リークを作成したいので、次のコードを作成して作成します。概念は、GC.SuppressFinalize() を呼び出して GC の作業を防止するだけの明示的な Dispose を作成することです。しかし、コードを実行しているときにメモリがリークしないようです。理由を教えてくれる人はいますか?
class Program
{
static void Main(string[] args)
{
while (true)
{
var t = new Foo();
t.create_leak();
t.Dispose();
}
}
}
class Foo:IDisposable
{
public void create_leak() {
m_value = new int[10000];
Console.WriteLine(m_value[10].ToString()+DateTime.Now.ToString());
}
public void Dispose() { GC.SuppressFinalize(this); }
private int[] m_value;
~Foo() { }
}