public IMergeableOperationBuilder MakeThrottle <T>(Action <T> execute, T newValue, T oldValue, object key, TimeSpan convergeTimeSpan)
        {
            var judge = new ThrottleMergeJudge <int>(key.GetHashCode(), convergeTimeSpan);

            return(new MergeableBuilder <T>(new MergeableOperation <T>(execute, newValue, oldValue, judge)));
        }
        /// <summary>
        /// 値が頻繁に変わるときに
        /// </summary>
        /// <param name="execute"></param>
        /// <param name="rollback"></param>
        /// <param name="key"></param>
        /// <param name="convergeTimeSpan"></param>
        /// <returns></returns>
        public IMergeableOperationBuilder MakeThrottle(Action execute, Action rollback, object key, TimeSpan convergeTimeSpan)
        {
            var judge = new ThrottleMergeJudge <int>(key.GetHashCode(), convergeTimeSpan);

            return(new MergeableBuilder(new MergeableOperation(execute, rollback, judge)));
        }