为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

qq_花开花谢_0 2019-06-26 15:02:37
最干净的写重试逻辑的方法?偶尔,在放弃之前,我需要重新尝试几次手术。我的代码是:int retries = 3;while(true) {   try {     DoSomething();     break; // success!   } catch {     if(--retries == 0) throw;     else Thread.Sleep(1000);   }}我想在一般重试函数中重写这个函数,例如:TryThreeTimes(DoSomething);有可能在C#吗?的代码是什么?TryThreeTimes()方法?
查看完整描述

3 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

你应该试试波莉..它是我编写的.NET库,允许开发人员以流畅的方式表达瞬态异常处理策略,如重试、永远重试、等待和重试或断路器。

Policy
    .Handle<SqlException>(ex => ex.Number == 1205)
    .Or<ArgumentException>(ex => ex.ParamName == "example")
    .WaitAndRetry(3, retryAttempt => TimeSpan.FromSeconds(3))
    .Execute(() => DoSomething());


查看完整回答
反对 回复 2019-06-26
  • 3 回答
  • 0 关注
  • 496 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信