¿Recolección de basura no puede recuperar BitmapImage?

Tengo una aplicación (WPF) que crea imágenes de mapa de bits en grandes cantidades (como 25000). Parece que el framework usa cierta lógica interna, así que después de la creación hay aproximadamente 300 mb de memoria consumida (150 virtuales y 150 físicas). Estas imágenes de mapa de bits se agregan al objeto de imagen y se agregan al lienzo. El problema es que cuando libero todas esas imágenes, la memoria no está liberada. ¿Cómo puedo liberar la memoria?

La aplicación es sencilla: Xaml.

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <Canvas x:Name="canvas" Grid.ColumnSpan="2"></Canvas>
        <Button Content="Add" Grid.Row="1" Click="Button_Click"/>
        <Button Content="Remove" Grid.Row="1" Grid.Column="1" Click="Remove_click"/>
    </Grid>

Código detrás

        const int size = 25000;
        BitmapImage[] bimages = new BitmapImage[size];
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            var paths = Directory.GetFiles(@"C:\Images", "*.jpg");
            for (int i = 0; i < size; i++)
            {
                bimages[i] = new BitmapImage(new Uri(paths[i % paths.Length]));
                var image = new Image();
                image.Source = bimages[i];
                canvas.Children.Add(image);
                Canvas.SetLeft(image, i*10);
                Canvas.SetTop(image, i * 10);
            }
        }

        private void Remove_click(object sender, RoutedEventArgs e)
        {
            for (int i = 0; i < size; i++)
            {
                bimages[i] = null;
            }
            canvas.Children.Clear();
            bimages = null;
            GC.Collect();
            GC.Collect();
            GC.Collect();
        }

Esta es una captura de pantalla de ResourceManager después de agregar imágenes

Respuestas a la pregunta(5)

Su respuesta a la pregunta