1234567891011121314151617181920212223242526272829303132333435363738 |
- namespace Hotline.Share.Tools;
- /// <summary>
- /// 重试操作辅助类
- /// </summary>
- public static class RetryHelper
- {
- /// <summary>
- /// 重试
- /// </summary>
- /// <param name="func"> 重试方法 </param>
- /// <param name="times"> 重试次数 (1 与 100 之间的整数) </param>
- /// <param name="millisecond"> 重试等待毫秒 </param>
- /// <returns> 是否执行成功 </returns>
- public static bool Retry(Func<bool> func, int times, int millisecond = 0)
- {
- if (times <= 1 && times >= 100)
- {
- throw new ArgumentOutOfRangeException("times 参数有误。只能是介于 1 与 100(包含1和100)之间的整数。");
- }
- while (times > 0)
- {
- if (func())
- {
- return true;
- }
- times--;
- if (millisecond > 0)
- {
- Thread.Sleep(millisecond);
- }
- }
- return false;
- }
- }
|