投稿者 葉月  (社会人) 投稿日時 2009/11/10 07:27:56
レスを見ますと、マルチスレッドにする必要があるようですね。
スレッドの説明とかは、?と感じてしまうかも知れません。
説明だけなのも酷なので簡単なサンプルを作りました。

サンプルを掲載する前に、ざっくりとマルチスレッドの注意点を述べます。
マルチスレッドを行う場合には、いくつかの注意があります。
例えば、フォームコントロールは複数のスレッドからへのアクセスが考慮されていません。
フォームコントロールを異なるスレッドからの操作があった場合、マーシャリングを行う必要があります。
(VS2005から、コントロールへの異なるスレッドから操作があった場合に例外が出ます)
適切にマーシャリングを行うために、デリゲートを使用してInvoke経由でアクセスを行います。
マーシャリングが必要か判定を行うために、InvokeRequiredプロパティを使用します。

各サイトの説明を理解するのも大事でですが、実際にコードを記述し、
動かしながら見た方が納得しやすいと思います。
コードを見ることで、マルチスレッドを敬遠したい理由の一端が見えてきます。
悪いところばかり上げましたが、バックグラウンドで処理を並列に行う時などには役立ちます。

■参考リンク
http://www.atmarkit.co.jp/fdotnet/vblab/appqa_06/appqa_06_01.html
http://www.atmarkit.co.jp/fdotnet/mthread/mthread02/mthread02_03.html