Я попытался использовать подход, описанный в принятом ответе, но он не сработал - похоже, компилятор или среда выполнения оптимизировали это.
Я нашел простейшую модификацию, которая делает эту работу:
var rnd = new Random();
var list = new List<byte[]>();
while (true)
{
byte[] b = new byte[1024];
b[rnd.Next(0, b.Length)] = byte.MaxValue;
list.Add(b);
Thread.Sleep(10);
}
Этот код заставляет приложение потреблять все больше и больше памяти.