大量の画像をリサイズする。ただしフォルダ構成は変えない

using System;
using System.Threading.Tasks;
using System.IO;
using System.Windows.Media;
using System.Windows.Media.Imaging;

namespace ResizePics
{
    class Program
    {
        const string SRC_DIR = @"E:\temp\SRCDIR";
        const string DST_DIR = @"E:\temp\DSTDIR";
        const double TARGET_WIDTH = 1000;


        static void Main(string[] args)
        {
            //対象ファイル取得
            var pictures = Directory.GetFiles(SRC_DIR, "*.jpg", SearchOption.AllDirectories);

            var pOptions = new ParallelOptions();
            pOptions.MaxDegreeOfParallelism = 2;
            Parallel.ForEach(pictures,pOptions, srcFile =>
            {
                Console.WriteLine(srcFile);
                //ファイルを開いて縮小する
                using (var srcStream = File.OpenRead(srcFile))
                {
                    var decoder = BitmapDecoder.Create(srcStream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
                    var bitmapSource = decoder.Frames[0];

                    //縮小したビットマップを作成する
                    var scale = TARGET_WIDTH / bitmapSource.PixelWidth;  //縮小率
                    var scaledBitmapSource = new TransformedBitmap(bitmapSource, new ScaleTransform(scale, scale));

                    var encoder = new JpegBitmapEncoder();
                    encoder.Frames.Add(BitmapFrame.Create(scaledBitmapSource));

                    //ファイルの書き出し
                    var dstFile = Microsoft.VisualBasic.Strings.Replace(srcFile, SRC_DIR, DST_DIR, 1, 1);

                    //ディレクトリがなければ作成する
                    if(!Directory.Exists(Path.GetDirectoryName(dstFile)))
                    {
                        Directory.CreateDirectory(Path.GetDirectoryName(dstFile));
                    }
                    using (var dstStream = File.OpenWrite(dstFile))
                    {
                        encoder.Save(dstStream);
                    }
                }
            });
            Console.WriteLine("END");
            Console.ReadLine();
        }
    }
}

基本的にこちらとやっていることは同じ。
http://note-sharp.blogspot.jp/2014/09/var-dir-cimages-parallel.html
Out of memoryが出たのでParallelに制限をかけたのと、pixelwidthに変更しただけです。