最干净的写重试逻辑的方法?

最干净的写重试逻辑的方法?

偶尔,在放弃之前,我需要重新尝试几次手术。我的代码是:

int retries = 3;while(true) {
  try {
    DoSomething();
    break; // success!
  } catch {
    if(--retries == 0) throw;
    else Thread.Sleep(1000);
  }}

我想在一般重试函数中重写这个函数,例如:

TryThreeTimes(DoSomething);

有可能在C#吗?的代码是什么?TryThreeTimes()方法?


qq_花开花谢_0
浏览 501回答 3
3回答

拉丁的传说

你应该试试波莉..它是我编写的.NET库,允许开发人员以流畅的方式表达瞬态异常处理策略,如重试、永远重试、等待和重试或断路器。例Policy &nbsp;&nbsp;&nbsp;&nbsp;.Handle<SqlException>(ex&nbsp;=>&nbsp;ex.Number&nbsp;==&nbsp;1205) &nbsp;&nbsp;&nbsp;&nbsp;.Or<ArgumentException>(ex&nbsp;=>&nbsp;ex.ParamName&nbsp;==&nbsp;"example") &nbsp;&nbsp;&nbsp;&nbsp;.WaitAndRetry(3,&nbsp;retryAttempt&nbsp;=>&nbsp;TimeSpan.FromSeconds(3)) &nbsp;&nbsp;&nbsp;&nbsp;.Execute(()&nbsp;=>&nbsp;DoSomething());
打开App,查看更多内容
随时随地看视频慕课网APP