205
В работе Эксперта 2 наблюдается иная ситуация, потому что период исполнения Т2 его
специальной функции start() в некоторых случаях превышает период времени между
тиками. Функция start() Эксперта 2 также запускается в момент t 1. На Рис. 52 показано,
что интервал времени меду тиками t 1 - t 2 больше, чем время Т2 исполнения функции
start(), поэтому в этот период работы программы обновление предопределённых
переменных не происходит (т.е. в этот период новые значения переменных с сервера не
поступают, поэтому их истинными значениями следует считать те, которые появились в
момент t 1).
В следующий раз функция start() Эксперта 2 запускается на исполнение в момент t 2, в
результате прихода второго тика. Одновременно с этим обновляются и значения набора
копий предопределённых переменных. На Рис. 52 показано, что момент прихода третьего
тика t 3 приходится на тот период, когда специальная функция start() ещё не закончила
свою работу (т.е. исполняется). Возникает естественный вопрос: каковыми будут значения
предопределённых переменных, доступные Эксперту 2, в период с момента t 3 прихода
третьего тика до момента t 32 окончания работы специальной функции start()? Ответ на
этот вопрос можно получить согласно следующему правилу:
Значения копий предопределённых переменных сохраняются в течение
всего периода работы специальных функций. Эти значения могут быть
принудительно обновлены с помощью стандартной функции
RefreshRates().
Таким образом (если не была исполнена функция RefreshRates()), в течение всего периода
исполнения специальной функции start() Эксперту 2 будут доступны значения того
локального набора копий предопределённых переменных, который был сформирован в
момент поступления второго тика. Несмотря на то, что эксперты работают в одинаковых
окнах, начиная с момента прихода третьего тика t 3, каждый из экспертов будет работать с
разными значениями предопределённых переменных. Эксперт 1 будет работать со своей
локальной копией набора исторических данных, значения которых определены в момент t
3, а Эксперт 2 будет работать со своей копией данных, значения которых соответствуют
моменту t 2.