c#lambda式を使用した再生ロジックの合理化
堅牢なアプリケーションは、多くの場合、潜在的な障害を優雅に処理するために再試行メカニズムを必要とします。 従来の再試行ループは複雑でエラーが発生しやすい場合がありますが、C#Lambda式はよりエレガントで再利用可能なソリューションを提供します。 この記事では、Retry Logicを簡素化する
クラスを示しています。 コア機能はメソッドにカプセル化されており、再試行する操作を表すラムダ式を受け入れます。
Retry
一般化された実装:Do
この
メソッドは、柔軟な再試行構成を可能にします:再試行間隔と最大試行回数を指定します。 遭遇した例外を収集し、すべての試みが失敗した場合、<code class="language-csharp">public static class Retry { public static void Do(Action action, TimeSpan retryInterval, int maxAttemptCount = 3) { var exceptions = new List<Exception>(); for (int attempted = 0; attempted < maxAttemptCount; attempted++) { try { action(); break; // Success! Exit the loop. } catch (Exception ex) { exceptions.Add(ex); if (attempted < maxAttemptCount - 1) { Thread.Sleep(retryInterval); } } } if (exceptions.Any()) { throw new AggregateException(exceptions); } } }</code>
クラスを使用することはシンプルで直感的です:Do
AggregateException
以上がc#lambda式は、潜在的な障害を処理するためにRetryロジックをきれいに実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。