如果在C#中出现异常,如何实现n次重试?

fun*_*ing 8 .net c#

我正在开发一个WPF 4.0应用程序,我们从远程Web服务中获取数据.Web服务向其客户公开了大约120多种方法.如果来自我的WPF应用程序的Web服务调用失败,我需要重试n次,可以通过App.Config进行配置.怎么实现这个?是否有任何设计模式可以解决这个问题?

Ita*_*aro 7

static T TryNTimes<T>(Func<T> func, int times)
{
  while (times>0)
  {
     try
     {
        return func();
     }
     catch(Exception e)
     {
       if (--times <= 0)
          throw;
     }

  }
}
Run Code Online (Sandbox Code Playgroud)