![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Допустим произошло событие таймера и запустился обработчик OnTimer, он объявил что переменная i=12.
Следом запустился обработчик OnTick и объявил что переменная i=0.
Далее OnTimer подставляет переменную i в некую функцию, рассчитывая на то, что i=12, но по той причине, что OnTick уже успел переобъявить i=0 произойдёт баг, вместо 12 будет 0.
Тело функций OnTimer и OnTick выполняются параллельно, независимо друг от друга, то есть лучше для каждого типа обработчика иметь свой набор переменных, чтобы они не пересекались или есть какой-то принцип, который позволяет избежать путаницы при обращении к переменным из разных обработчиков при их параллельной работе?
А просто флаг использовать никак?
в MQL-программах нет буферизации или очереди событий
Есть, но не для всех событий.
А просто флаг использовать никак?
Флаг для каких целей? Вроде выяснили, что OnTimer и OnTick одновременно не функционируют... Без нашего какого-либо участия существует программный флаг - пока исполняется одно другое не исполняется и наоборот. Что именно вы подразумеваете под флагом?