投稿者 daive  (社会人) 投稿日時 2009/2/24 21:43:08
ドライバが、実績があって、
BackgroundWorker でなく、通常の場合は、正常に動作するのであれば、

例えば、ユーザーコントロールを作って、1接続毎に、使ってみるのはいかがでしょうか?
ユーザーコントロール内で、作り方によっては、タイマーを使って定期的に生存確認もできますし、
他の処理をさせることも可能です。

時計表示や、シーケンサ制御などで、使用していますが、余り工夫しなくても、
マルチプロセス動作ぽいことが可能です。
(時計などは、デザインモードで動作しないような、工夫も必要な場合もありますが)

通常の場合でも、ドライバ部分で、ロックしてしまうのであれば、
メーカーに問い合わせするより、方法がないのではないでしょうか。

もちろん、DBなどの、よけいな処理を除いた、ドライバの動作検証用コードを作って
ドライバの動作を検証することは必要です。
また、ドライバが、VS2005用で、使用しているWindowsや、.NETのバージョンや、
OSのDLLのバージョンに依存しているかどうかの、確認も必要です。
その辺は、ドライバの取説を見れば書いてあるか、何処かに情報があるはずです。

現状の書込みからでは、これ位しか思い浮かびません。
装置、ドライバ、の種類や仕様、メーカーが不明ですし。

※全く関係ないかもですが、開発環境なのですが、VS2005IDEは結構実メモリを要求します。
 DBでも、開発用PCのメインメモリを要求したりしますので、変なスワップが起きて
 止まったように見えるという事は無いですよね?
 (作成するフォーム、プログラムにもよりますが、WindowsXP1GRAMでは、厳しいかもです。
  MS-SQLサーバーが開発マシンに居る場合は、初期設定のままの動的メモリ配置の場合は、
  変なクエリで、空きメモリが減少してしまいますし。CPUは、Pentium-4では厳しいですし。)