|
分類:[.NET 全般]
[ソフト]VB2010Express [環境]Windows XP Professional(32bitOS)
お世話になります。 並列処理の方法について質問です。 「BackgroundWorker」と「System.Threading.Thread」の差についてご教示頂きたいと 思っております。
【背景】
現在、3台のネットワークカメラで画像を同時取込させようとしています。
トリガをタイマで1ms間隔で監視し、トリガ(撮影開始の信号)が入力されると BackgroundWorkerを3つ利用して、各カメラごとに「画像撮影→外付けHDDに保存」 という作業を並列処理で行なっています。
例. Call Backgroundworker1():camera1の取込プログラム呼び出し Call Backgroundworker2():camera2の取込プログラム呼び出し Call Backgroundworker3():camera3の取込プログラム呼び出し
しかし、かなりの頻度でcamera3の取込が遅れてしまいます。 そこで、試しにBackgroundWorkerの使用を止めて、System.Threading.Threadを利用すると 大幅な遅延が解消されました。
使い勝手はBackgroundWorkerの方が良いので、そちらを使いたいと思っているのですが 改善策などはあるのでしょうか??
宜しくお願い致します。
|