0

これに続いて、.NET 4.5 (および大規模な WPF UI) を対象とした、次のタスクのベアボーン ソリューションを投稿できる人はいますか?

基本的に、.NET 4.5 と c# で実装されたトレント アプリケーションの機能的なアナログを探しています。

タスク:

IEnumerable<IProcessable>の 1000 インスタンスを含むI haveにはIProcessableIProcessablehasProcess(int argument)メソッドがあり、実行に 1 ~ 10 秒かかります。コレクションをループして の各インスタンスを処理しIProcessable、同時に処理されるインスタンスの数を N (1..10) に制限します。最大同時インスタンス数は簡単に調整できます。理想的には、それぞれIProcessableがプロセス完了の進捗状況について報告することを望みます。これがプロセスのプロトタイプです (進捗レポートを有効にするには、おそらく void ではなく何かに変換する必要があります)。

void Process(int e)
{
   int progress = 0;
   ...Sleep for 100ms;
   int progress = 30;
   ...Sleep for 100ms;
   int progress = 50;
   ...
}
4

1 に答える 1

3

一度に処理されるインスタンスの数を制限することだけが必要な場合はParallel.ForEach()、良い解決策のようです。それを使用するときは、それを行う を指定できますMaxDegreeOfParallelism

于 2012-09-11T10:34:45.133 に答える