私はC#プログラミングを見て、その言語をかなりスクラブしています。私は一般的にオブジェクト指向プログラミングをよく理解していると思っていますが、複数のスレッドを実行することは、高いレベルでは意味しますが、実際の実装では私はスクラブと言います。C#でクラスの "スプール"サービスを作成する方法
私が探しているのは、多くのスレッドを実行し、互いに独立して相互作用し、それぞれが独自のタスクを提供し、他のスレッドを呼び出すツールを作成することです。
通信を確実にするための戦略(異なるスレッドから複数の更新が同時に発生することなく何も失うことなく)は、各クラスで外部と呼ばれるタスクを作成し、特定のスレッドにタスクを追加するか、これらのために。私はこれをクラスまたは外部に配置し、クラス自体が新しいタスクのためにスプールを呼び出し、スプールを追跡する必要があるかどうかはわかりません。ここで私は特に、空のスプールがタスクを取得した場合(クラスが新しいものが到着したときにタスクが呼び出されるようにするためにタスクをプールに登録できるようにするリスナーのアプローチ)、または "次のタスクがスケジュールされていない」アプローチ
実際のクラスでこれを作成するか、外部から作成するとよいでしょうか? 「ビジー待機チェック」は新しいジョブの追加と実際のスプールでのジョブの削除を可能にするため、シグニチャにはジョブの追加と削除の両方が必要ですが、Gotoスリープも必要です重要な領域が入力された場合に何をすべきかのスプールに対する高い要求を突然追加します。これにより、ブロックが発生し、他のブロックが発生し、予期しないデッドロックが発生する可能性があります。
すごい私は、これは非常にオープンエンドの問題だと思います。この種のシステム(主にエージェントと呼ばれます)については多くのことが書かれています。エージェントベースのシステムを検索するだけです。 – Carsten
うんざりして深い端にまっすぐ落としてしまった。提案していただきありがとうございます。私はそれを徹底的に調べます。私が目指しているのは、このための良いアプローチで私を助けることができる "パターン"です。適切なパターンが見つかったら、実際の実装を把握することは、半分の楽しみになるでしょう。 – Taoh
私はあなたの質問すべてを理解しているかどうかはわかりませんが、[アクティブオブジェクト設計パターン](http://en.wikipedia.org/wiki/Active_object)はここで役に立つかもしれません。 – dtb