用C#lambda表達式簡化重試邏輯
強大的應用程序通常需要重試機制才能優雅處理潛在的故障。 雖然傳統的重試循環可能很複雜並且容易出錯,但C#lambda表達式提供了更優雅和可重複使用的解決方案。
本文演示了簡化重試邏輯的類類。 核心功能封裝在
>方法中,該方法接受代表要重述操作的lambda表達式。這是一個廣義的實現: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表達式如何干淨地實施重試邏輯來處理潛在的故障?的詳細內容。更多資訊請關注PHP中文網其他相關文章!