2

私は.NET環境が初めてです。メソッドが特定のクラスを呼び出すWindows サービス、たとえば MainContext の Start メソッドと Stop メソッドがそれぞれ必要StartですStop。MainContext クラスには、MEFを通じて読み込まれた拡張機能のリストが含まれます。各拡張機能は、個別のスレッドとして同時に実行する必要があります。

クラスMainContextには 2 つの public メソッドStartとが含まれStopます。どちらも戻り値の型は void で、引数は含まれません。メソッドを呼び出すとStart、同時に MEF を介して読み込まれた各拡張機能のスレッドが開始されます。メソッドは、Stopメソッドによって開始されたすべてのスレッドを停止しStartます。

この状況でのスレッド化のベストプラクティスはどれですか? 私は混乱しています。マルチスレッドにSystem.Threading.Tasks.Taskクラスまたはクラスを使用する必要がありますか、それとも他の手法を使用する必要がありますか? System.Threading.Threadどちらが私の要件により適していて、柔軟性と安定性が向上しますか?

4

1 に答える 1

0

ファイル サーバー、データベース、および Web サービスを監視するアドインを使用して、MAF を使用して同様のことを行いました。Windows サービスは、各アドインで Start メソッドと Stop メソッドを呼び出し、System.Timer.Timers を有効または無効にします。実際の処理は、プールされたスレッドで実行される各タイマーの経過イベント ハンドラーで行われます。

アドインの 1 つは、UI アプリから他のアドインを監視および制御できるように、プロセス間通信を使用するデータベース テーブルを監視します。

于 2012-04-30T20:23:59.490 に答える