返答ありがとうございました。
やっぱりスレッドは難しいんですね・・。
>>277
ぜひ参考にさせてもらいます。

またスレッドの件でなんですがサブスレッド終了時に
メインスレッドと同期をとりながら終了処理するにはどんな
方法が一般的なんのでしょうか。
可能であればメインスレッド(Form)のイベントとして処理させ
たいです。

例えば
・サブスレッド終了時にメインスレッド側でメッセージボックスを表示
・メインスレッド(Form)で他のダイアログ表示等の何か処理していた
 場合は終了まで待つ
という感じです。

思いついたのが
1、Formのメソッド毎にlock等の排他をする
2、サブスレッドでPostMessageにイベントを入れておく
3、処理キュークラスを作ってそれに全ての処理を任せる
です。
2をC#で簡単に出来るのであればそれを使いたいと考えています。