/// <summary> /// 使用锁执行一个方法 /// </summary> /// <typeparam name="T">返回对象类型</typeparam> /// <param name="lock">业务锁</param> /// <param name="key">锁定标识</param> /// <param name="expiration">锁定时间间隔</param> /// <param name="executeAction">执行的方法</param> /// <param name="defaultValue">默认值</param> public static T ExecuteWithLock <T>(this ILock @lock, string key, TimeSpan expiration, Func <T> executeAction, T defaultValue = default) => @lock.ExecuteWithLock(key, "1", expiration, executeAction, defaultValue);
/// <summary> /// 使用锁执行一个方法 /// </summary> /// <param name="lock">业务锁</param> /// <param name="key">锁定标识</param> /// <param name="expiration">锁定时间间隔</param> /// <param name="executeAction">执行的方法</param> public static void ExecuteWithLock(this ILock @lock, string key, TimeSpan expiration, Action executeAction) => @lock.ExecuteWithLock(key, "1", expiration, executeAction);