Przydzielenie ponad 1000 MB pamięci w 32-bitowym procesie .NET

Zastanawiam się, dlaczego nie mogę przeznaczyć więcej niż 1000 MB pamięci w moim 32-bitowym procesie .NET. Następująca mini aplikacja zgłasza wyjątek OutOfMemoryException po przydzieleniu 1000 MB. Dlaczego 1000 MB, a nie 1,8 GB? Czy mogę zmienić ustawienie dla całego procesu?

static void Main(string[] args)
{
    ArrayList list = new ArrayList();
    int i = 0;
    while (true)
    {
        list.Add(new byte[1024 * 1024 * 10]); // 10 MB
        i += 10;
        Console.WriteLine(i);
    }
}

PS: Zbieranie śmieci nie pomaga.

Edytuj, aby wyjaśnić, czego chcę: Napisałem aplikację serwerową, która zajmuje się bardzo dużymi ilościami danych przed zapisaniem do bazy danych / dysku. Zamiast tworzyć pliki tymczasowe na wszystko, napisałem pamięć podręczną w pamięci, co sprawia, że ​​wszystko jest super szybkie. Ale pamięć jest ograniczona, więc starałem się dowiedzieć, jakie są granice. I zastanawiałem się, dlaczego mój mały program testowy rzucił OutOfMemoryException po dokładnie 1000 MB.

questionAnswers(6)

yourAnswerToTheQuestion