どうにも困っていまして、先達に教えを請いたいのですがよろしいでしょうか?
XP版VS2005のC#で、スレッドを使用して、USB機器(読み取り機)にアクセスするプログラムを作成しています。

フォームからスレッドを呼び出し、スレッド上でループして、機器にアクセスできたらポートを開けて内容を読み取るということをしています。

機器が差された際にアクセスするのはできました。
ですが、機器を引っこ抜かれると、スレッドが飛んでしまうようなのです。
抜いた後、Debugモードで確認すると、ループ内のブレイクポイントには引っかかりません。
引っこ抜いたときに、exceptやfinallyも通っていないようです。

何度抜き差ししても読み取りに行けるプログラムを作ろうと思っているのですが、
スレッドが終わったことを、フォーム側で知ることはできるのでしょうか?

どうかお教え願います。