下記みたいなコードで、ひとつひとつは大したことない(100Mbyteぐらい?)処理
ですが、ものすごくたくさんの処理を並列実行したく思います。メモリを食うメソッド
内部はすべてusingを使ってその内部で解放しているつもりですが、たぶんGCの都合
なのか、途中でOutOfMemoryが発生してしまいます。
なんかうまいやり方があるのでしょうか。教えてください。

var t = Task.Factory.StartNew(() =>
{
Parallel.For(progressBar1.Minimum, progressBar1.Maximum, i =>
{
(メモリを食うメソッド);
BeginInvoke((Action)(progressBar1.PerformStep));
});
}

private void メモリを食うメソッド()
{
using(Bitmap a=new Bitmap(filename))
{ いろいろ }
}