C#::スレッドの終了に処理を引っ掛ける

重たい処理をスレッドで実行しておいて、それが終わったら何かする。スレッドの用途としては良くあるパターン。
普通に考えたら、「思い処理をやって何かする」関数を作ってそれをスレッドとして実行するわけだけど、「何かする」の部分がそこ以外にも需要のある処理だった場合、こんな書き方もできるんじゃないかな、とか思ってみたり。

void Start(){
  ProcProvider pv = new ProcProvider();
  Thread th = new Thread((ThreadStart)pv.HeavyProc + postProcess);
  th.Start();
}
void postProcess(){
  //何かスレッドの後処理
}

デリゲートチェインを使って、pv.HeavyProcの後にpostProcess()が呼び出されるようにしてあるわけですよ。やらないといけないことが二つ・三つあるんであれば、

 Thread th = new Thread((ThreadStart)pv.HeavyProc 
           + postProcess1 + postProcess2 + postProcess3);

とか書いてみたりして。
どないだっしょ。