私は空き時間に画像ボードスクレーパーを書いて、スレッドに関することを教えています。現在、私はこの作業を容易にするためにプロデューサ/コンシューマタイプのパターンを使用しています。しかし、私は問題に遭遇しています。異なるスレッド上のオブジェクトのインスタンスの追跡ステータス?
現在、スレッドセーフなキューの特定の種類を監視して処理する「キュープロセッサ」があります。これらのキュープロセッサは、X秒ごとに対象キューをポーリングし、キューに処理待ちのアイテムがある場合、キュープロセッサはそのアイテムをデキューし、そのアイテムで新しいスレッドをスピンアップしてスレッドを開始します。各スレッドでは、長時間実行されるメソッドが呼び出されます(Webサイトへの接続やファイルのダウンロードなど)。このようにして、各アイテムは独自のスレッドを取得して実行されます。
各スレッドで処理されている各アイテムのステータスを報告する方法がわかりません。
たとえば、メインスレッドMTがあるとします。 MTは、子スレッドT1、T2、T3、T4、およびT5を生成します。各スレッドには、対応するオブジェクトO1 ... O5があります。これらのオブジェクトは、そのスレッド上で処理されている間に、例えば、S1、S2、S3-の3つの異なる状態にあり得る。
オブジェクトOのステータスが変更されたときに、各オブジェクトOのステータスをメインスレッドMTに報告するにはどうすればよいですか?
ステータスを報告するためにイベントを使用しようとしましたが、その周りにうっかりした結果が発生しています。私はスレッドとイベントの使い方について少し調べましたが、それほど遠くには達しませんでした。
ご協力いただければ幸いです。
ありがとうございます。