Example #1
0
        /// <summary>
        /// Выполнение метода в течение промежутка времени
        /// </summary>
        /// <param name="method">Метод, который нужно выполнять</param>
        /// <param name="time">Время выполнения метода</param>
        public void InvokeRepeating(Action method, float time, float interval, Action callback = null)
        {
            var invokeTime = new InvokeTime(method, PhotonNetwork.Time, time, interval, callback);

            invokeTime.Interval += _bias;              // прибавляем погрешность чтобы не халтурить
            invokeTime.Timer     = PhotonNetwork.Time; // чтобы тайм вычитался на тайм в первый тик и сработал моментально

            _invokeRepeatingMethods.Add(invokeTime);
        }
Example #2
0
 public override DateTime GetNext(DateTime now)
 {
     InvokeTime = InvokeTime.AddSeconds(Interval);
     return(InvokeTime);
 }
Example #3
0
        void CalNext(ref int minute, ref int hour, ref int day, ref int month, ref int year)
        {
            #region ***分***
            if (Minutes != null && Minutes.MoveNext())//按分钟循环
            {
                minute = Minutes.Current;
                return;
            }

            //重置
            if (Minutes != null)
            {
                Minutes.Reset();
                minute = Minutes.Current;
            }
            else
            {
                minute = 0;
            }
            #endregion

            #region ***时***
            if (Hours == null && hour < 23)//每小时循环
            {
                hour++;
                return;
            }
            else if (Hours != null && Hours.MoveNext())
            {
                hour = Hours.Current;
                return;
            }
            //重置
            if (Hours != null)
            {
                Hours.Reset();
                hour = Hours.Current;
            }
            else
            {
                hour = 0;
            }
            #endregion

            #region ***日***
            if (Days == null)
            {
                if (_isFirst)
                {
                    _isFirst = false;
                    return;
                }
                var newD = InvokeTime.AddDays(1);
                day   = newD.Day;
                month = newD.Month;
                year  = newD.Year;
                return;
            }
            else if (Days.MoveNext())
            {
                day = Days.Current;
                return;
            }
            else
            {
                Days.Reset();
                day = Days.Current;
            }

            if (Months == null)
            {
                if (_isMonthFirst)
                {
                    _isMonthFirst = false;
                    return;
                }
                var newD = InvokeTime.AddMonths(1);
                month = newD.Month;
                year  = newD.Year;
                return;
            }
            #endregion
        }