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);
とか書いてみたりして。
どないだっしょ。