L'allocation de plus de 1 000 MB de mémoire de 32 bits .NET processus

Je me demande pourquoi je ne suis pas en mesure d'allouer plus de 1 000 MB de mémoire dans mon 32 bits .NET processus. La suite de la mini application déclenche une exception OutOfMemoryException après avoir attribué de 1 000 MB. Pourquoi 1 000 MO, et de ne pas dire de 1,8 GO? Est-ce qu'un processus à l'échelle de réglage, je pouvais changer?

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: la collecte des Ordures n'aide pas.

Modifier, afin de clarifier ce que je veux: j'ai écrit une application serveur qui traite avec de très grandes quantités de données avant de les écrire dans la base/le disque. Au lieu de créer des fichiers temporaires pour tout, j'ai écrit un cache en mémoire, ce qui rend le truc super-rapide. Mais la mémoire est limitée, et donc j'ai essayé de trouver quelles sont les limites. Et je me demandais pourquoi mon petit programme de test a jeté l'exception OutOfMemoryException après exactement 1 000 MO.