глобальный таймер
#2

Можно по-другому.

PHP код:

int globalTimer
;
public 
globalUpdate ()
{
        ++ 
globalTimer;
        if (!(
globalTimer interval_1))
                
func_1 ();
        if (!(
globalTimer interval_2))
                
func_2 ();
        
// ...............
        
if (!(globalTimer interval_n))
                
func_n ();
        if (
globalTimer == SCD)
                
globalTimer = -1;
        return 
1;

Предполагается, что у тебя есть n функций.
Каждая выполняется согласно своему интервалу (в секундах).

Ставишь секундный таймер на функцию globalUpdate; repeat = true.

SCD, - the smallest common dividend, - наименьшее общее делимое.

Тебе его нужно посчитать, зная интервалы запуска всех функций.
Требуется для того, чтобы не "сбросить" некоторое кол-во времени, оставшееся до запуска какой-либо функции (проще говоря, все функции будут запускаться четко по плану, а не "как хотят").

Например: 3 функции с интервалами в 20, 40, 55 секунд. SCD = 440 секунд (все интервалы делят это число нацело).

P. S.
Я не думаю, что у тебя там будут огромные интервалы, при которых SCD превысит max integer.
Но если вдруг - можешь сменить integer на float.
Reply


Messages In This Thread
глобальный таймер - by Kuroki - 09.07.2013, 11:11
Re: глобальный таймер - by ZN-Freedom - 09.07.2013, 12:12
Re: глобальный таймер - by Stepashka - 09.07.2013, 12:15
Re: глобальный таймер - by Den_Bellik - 09.07.2013, 12:19
Re: глобальный таймер - by Kuroki - 09.07.2013, 15:27

Forum Jump:


Users browsing this thread: 2 Guest(s)