ノード数のセットを取得するには、Web サービスを一連の呼び出しを行う必要があります。私はすべての呼び出しを並行して非同期に行っています。呼び出しを開始した後、次のように結果を合計します。
//pendingTasks is List<Task<int>>
int sum = 0;
foreach (var task in pendingTasks)
{
sum += await task;
if (sum > 100) break;
}
100を超えた後の特定のカウントは気にしないので、ブレークがあります。
まず、そのようなループから抜け出すのは危険ですか?保留中のタスクを残すのは悪いことですか? あらゆる種類のメモリリークが発生しますか?
第二に、個々の呼び出しはかなり一貫性がありません。最初の呼び出しが最も長く、その後のすべての呼び出しの合計が 100 を超えていたとしても、それを待つことになるのは嫌です。受け取った順番。私はWhenAll
以前に使用WhenAny
したことがありますが、それが私が望むものであると確信していますが、この種のシナリオで使用する方法がよくわかりません。 .