6

Windowsサービスで使用でき、必要なすべてのマルチスレッド機能を処理できる、できればC#の優れたライブラリを探しています。

サービスはx分ごとに実行され、呼び出すプロセスがないかデータベースをチェックし、各プロセスに対してスレッドを生成して実行します。

各スレッドは、例外やロギングなどを処理する必要があります。

助言がありますか?

4

3 に答える 3

5

これはちょっとした口調ですが、.NET Frameworkはどうですか?名前System.Threading空間には、これに必要なすべてのものがあります。

.NET 4、またはRxフレームワークのバックポートを使用できる場合、タスク並列ライブラリによってこれも少し簡単になる可能性がありますが、それがなくても、標準フレームワークには必要なものがすべて揃っています。

于 2010-01-06T20:00:40.593 に答える
4

このプロジェクトを検討して くださいhttp://www.codeplex.com/smartthreadpool

プロジェクトの説明

スマートスレッドプールは、C#で記述されたスレッドプールです。.NETの組み込みスレッドプールよりもはるかに高度です。スレッドプール機能のリストは次のとおりです。

  • スレッドの数は、プール内のスレッドのワークロードに応じて動的に変化します。
  • 作業項目は値を返すことができます。
  • 作業項目はキャンセルできます。
  • 呼び出し元スレッドのコンテキストは、作業項目が実行されるときに使用されます(制限付き)。
  • 最小数のWin32イベントハンドルを使用するため、アプリケーションのハンドル数が急増することはありません。
  • 呼び出し元は、複数またはすべての作業項目が完了するのを待つことができます。
  • 作業項目には、作業項目が完了するとすぐに呼び出されるPostExecuteコールバックを含めることができます。
  • 作業項目に付随する状態オブジェクトは、自動的に破棄できます。
  • 作業項目の例外が呼び出し元に返送されます。
  • 作業項目が優先されます。
  • 作業項目グループ。
  • 呼び出し元は、スレッドプールと作業項目グループの開始を一時停止できます。
  • スレッドが優先されます。
  • シングルスレッドアパートメントを持つCOMオブジェクトを実行できます。
  • アクションとFuncのデリゲートをサポートします。
  • WindowsCEのサポート(制限付き)
  • MaxThreadsとMinThreadsは実行時に変更できます。
  • キャンセル動作は改善されています。
于 2010-01-06T20:05:25.543 に答える
2

マルチスレッドをサポートするスケジューリングライブラリが必要な場合は、以前にこれを使用しました:Quartz.NET

http://quartznet.sourceforge.net/

于 2010-01-06T20:09:56.870 に答える