.NET環境を初めて使用しています。 Start
とStop
メソッドが特定のクラス、たとえばMainContextのStartメソッドとStopメソッドをそれぞれ呼び出すWindowsサービスが必要です。 MainContextクラスには、MEFによってロードされた拡張のリストが含まれます。各拡張は、同時に別のスレッドとして実行する必要があります。Windowsサービスによる同時スレッドの開始と停止
クラスMainContext
には、戻り値の型と引数を含まない2つのパブリックメソッドStart
とStop
が含まれます。 Start
メソッドを呼び出すと、MEFを介してロードされた各拡張のスレッドが同時に開始されます。 Stop
メソッドは、Start
メソッドによって開始されたすべてのスレッドを停止します。
この状況では、どのスレッド処理が最も適していますか?私は混乱しています。 System.Threading.Tasks.Task
クラスまたはSystem.Threading.Thread
クラスをマルチスレッドに使用する必要がありますか?または他の方法を使用する必要がありますか?私の要件に適していると私はより柔軟性と安定性を提供するだろうか?
'System.Threading.Thread'は、' System.Threading.Tasks.Task'の代わりにあなたのニーズに合っていますが、あなたのスレッドメソッドの中にはスレッドを止めるためのロジックも必要です。 –
あなたは100の拡張と1つのデュアルコアプロセッサを持っているとしましょう。 100スレッドの開始は、この場合にプログラムを速くするのに役立ちません。あなたは、あなたの内線の性質について何か言わなければなりません - 彼らはどのような仕事をしていますか? – Dennis
@Dennis:100の拡張は、私のアプリケーションでは当てはまりません。最大5〜8個の内線番号が同時に実行されているとします。そして、それぞれのエクステンションには大きな仕事はありません。それは非常にシンプルで軽量の仕事、ファイルシステムの監視などと言うでしょう。 –