Какова последовательность обработки процедур OnInit и других?

Страницы: 1
RSS
Какова последовательность обработки процедур OnInit и других?
 
Вопрос к разработчикам:

В роботе описаны функции OnInit и OnQuote (коллбек по событию стакан).

Так вот получается, что при запуске скрипта OnQuote начинает срабатывать раньше, чем  отработает OnInit
Дело в том, что в OnInit  описаны переменные, которые нужны потом для работы со стаканом.

Разве это логично, что OnInit  не обрабатывается первично?

Опишите тогда пожалуйста логику выполнения скрипта, чтобы понимать всю последовательность.
Заранее спасибо.  
 
Небольшое уточнение - OnInit начинается обрабатываться самый первый. Но его завершения уже начинают срабатывать OnQuote
 
Вопрос к тому, что как и было обсуждение в одной из соседних веток, в чем тогда разница, прописывать инициацию переменных прямо в теле макроса до описания всех функций, типа OnQuote, или внутри OnInit? для чего тогда OnInit нужен?
 
Здравствуйте,
Цитата
Sergey Denegin написал:
Но его завершения уже начинают срабатывать OnQuote
К сожалению не совсем понятно что имеется ввиду. Просьба описать подробней.

Цитата
Sergey Denegin написал:
для чего тогда OnInit нужен?
OnInit должен сработать раньше, если это не так, будем разбираться.
Сообщите пожалуйста версию терминала.
 
Версия 7.5

Как уже писал выше, OnInit действительно запускается самый первый. Но еще до конца его работы уже инициируется функция OnQuote и пока OnInit не делает свою работу (а он у меня загружает значения некоторых графиков в массив данных), OnQuote уже начинает свою работу, что приводит к ошибкам в результате отсутствия некоторых данных.
Я конечно решил проблему введением некоей переменной, которая принимает значение только в конце OnInit , но это лишние проверки в OnQuote , что в теории создает лишнее торможение
 
Цитата
Sergey Denegin написал:
и пока OnInit не делает свою работу
опечатка. Правильно

"и пока OnInit делает свою работу"
 
Сергей,
Пришлите пожалуйста пример скрипта.
 
Цитата
Sergey Denegin написал:
Небольшое уточнение - OnInit начинается обрабатываться самый первый. Но его завершения уже начинают срабатывать OnQuote
Есть большие сомнения в корректности ваших выводов.
Я думаю, вы таким образом ошибочно интерпретируете какое-то поведение скрипта.
 
OnInit и OnQuote должны вызываться из одного (главного) потока Квика. Исходя из этого, по идее, они никак не могут работать параллельно.
 
Всё уже давно и детально расписано в самой документации:
 
Цитата
swerg написал:
Есть большие сомнения в корректности ваших выводов.
я это вижу в протоколах вывода message
я умею наблюдать последовательность вывода на экран строк ) (да и ошибки из функции onquote, когда в ней какая-то переменная не определена)

Цитата
тот самый написал:
Всё уже давно и детально расписано в самой документации:
Из этого только не совсем понятно, что такое поток?!
Можете  проще объяснить?
Может OnQoute сработать до того, как закончится OnInit?

На сколько я мог наблюдать то все функции колбеки срабатывают именно в тот момент, когда произошло событие, иначе в них бы не было особого смысла, если бы они дожидались завершения работы какой-то другой процедуры.
Для сомневающихся могу в понедельник сделать эксперимент, когда стакан заработает.  
 
Цитата
Sergey Denegin написал:
Может OnQoute сработать до того, как закончится OnInit?
Нет - не может.

Цитата
Sergey Denegin написал:
Из этого только не совсем понятно, что такое поток?!
что такое поток
Цитата
Sergey Denegin написал:
Для сомневающихся могу в понедельник
Вас уже просили предоставить ВЕСЬ скрипт, а не разводить демагогию
 
а вообще...
читайте форум - это уже всё много и не раз здесь обсуждалось
 
Цитата
тот самый написал:
Вас уже просили предоставить ВЕСЬ скрипт, а не разводить демагогию
Скрипт содержит 7000 строк. что от него толку? Суть проста - в OnInit идет загрузка данных из графиков в массив данных. Это занимает время. Вам как программисту понятно, что нет разницы, чем именно занят в этот момент процедура? ДА хоть там цикл от 1 до 100000000000000 будет крутиться.
В общем если вам по существу ответить нечего, то лучше дайте сделать это тем, кто в теме
 
Цитата
Sergey Denegin написал:
Цитата
тот самый   написал:
Вас уже просили предоставить ВЕСЬ скрипт, а не разводить демагогию
Скрипт содержит 7000 строк. что от него толку? Суть проста - в OnInit идет загрузка данных из графиков в массив данных. Это занимает время. Вам как программисту понятно, что нет разницы, чем именно занят в этот момент процедура? ДА хоть там цикл от 1 до 100000000000000 будет крутиться.
В общем если вам по существу ответить нечего, то лучше дайте сделать это тем, кто в теме
Тогда приведите более короткий скрипт, воспроизводящий проблему.
Пока всё выгляди так, что вы ошибаетесь.
 
Цитата
тот самый написал:
Всё уже давно и детально расписано в самой документации:
Вот это я понимаю, мощно сплагиатили

https://quik2dde.ru/viewtopic.php?id=16
 
Цитата
swerg написал:
Цитата
тот самый   написал:
Всё уже давно и детально расписано в самой документации:
Вот это я понимаю, мощно сплагиатили

https://quik2dde.ru/viewtopic.php?id=16
Что? никто на твой протухший форум - так и не заглядывает?
 
Они просто раскрыли то, что уже нельзя считать тайной.
 
Цитата
Sergey Denegin написал:
В общем если вам по существу ответить нечего, то лучше дайте сделать это тем, кто в теме
в общем - варежку свою прикрой, "умник" - и иди читай сперва справку, потом, глядишь и вопросов на форуме поубавится.
Страницы: 1
Читают тему
Наверх