私たちは、約200項目の復号化ロジックを持つWebAPIを開発しています。各復号には約20msかかる。 私たちはタスクをできるだけ早く完了させるためにタスクを並列化しようとしましたが、古いスレッドが完了するのを待ってスレッドが再利用されるため、ある種の制限があるようですほんの少ししか使用されていません) - 全体のアクションは完了するのに約1〜2秒かかります。スレッド(タスク)WebAPIの制限(または一般的に)
私たちが基本的に達成したいのは、スレッドのx量を同時に開始し、〜20ms後に終了することです。
我々はこの試みた: Await multiple async Task while setting max running task at a time
をしかし、我々がそれを解放したい一方で、これが唯一の制限を設定することについて説明しそうです...
ここに抜粋です:
var tasks = new List<Task>();
foreach (var element in Elements)
{
var task = new Task(() =>
{
element.Value = Cipher.Decrypt((string)element.Value);
}
});
task.Start();
tasks.Add(task);
}
Task.WaitAll(tasks.ToArray());
我々は何ですかここに行方不明?
ありがとう、 Nir。
あなたはタスクscheduellerを書いているのでなければ 'new task(' 'Task.Run'を使うべきです。 –