私は自由な時間に画像掲示板スクレーパーを書いていて、主にスレッドについて教えてくれます。現在、私はこの取り組みを容易にするために生産者/消費者タイプのパターンを使用しています。しかし、私は問題にぶつかっています。
現在、特定の種類のスレッドセーフキューを監視して処理する「キュープロセッサ」があります。これらのキュープロセッサは、X秒ごとにターゲットキューをポーリングし、処理を待機しているアイテムがキューにある場合、キュープロセッサはそのアイテムのキューを解除し、そのアイテムを使用して新しいスレッドを起動し、スレッドを開始します。各スレッドで、長時間実行されるメソッドが呼び出されます(Webサイトへの接続やファイルのダウンロードなど)。このようにして、各アイテムは実行する独自のスレッドを取得します。
各スレッドで処理されている間、各アイテムのステータスを報告する方法を理解するのに苦労しています。
たとえば、メインスレッドMTがあるとします。MTは、子スレッドT1、T2、T3、T4、およびT5を生成します。各スレッドには、対応するオブジェクトO1...O5があります。これらのオブジェクトは、スレッドで処理されている間、たとえばS1、S2、S3の3つの異なる状態になる可能性があります。
オブジェクトOのステータスが変化したときに、各オブジェクトOのステータスSをメインスレッドMTに報告するにはどうすればよいですか?
イベントを使用してステータスを報告しようとしましたが、その周りでいくつかの奇妙な結果に遭遇しています。スレッドとイベントの使用について少しググったが、それほど遠くはなかった。
どんな助けでもいただければ幸いです。
ありがとうございました。