scheme.png
Это только половина схемы, и много потоков сидят в контейнерах и их не видно.)
------------ Дoбавленo в 16.12:
Когда нужно что-то изменить в схеме - приходится вспоминать для чего тот или иной элемент, отслеживать откуда идет линк и что он делает, потому что запомнить нереально. Хорошо хоть контейнеры подписаны.. Но ничего. Даже прикольно, и чувствуешь себя победителем, нет, даже Воином Кода (кстати, мой второй ник - я сражаюсь с Кодом и с помощью Кода ) когда монстр начинает слушаться команд.))
------------ Дoбавленo в 16.28:
Я понял в чем причина путаницы и как навести порядок. Нужно просто всю логику строить через 2 длинных хаба. Первый - передает событие onCreate формы, второй - OnClose. Чтоб модули запускались строго последовательно. А не как сейчас - результаты работы одной части схемы или модуля - запускают другую часть схемы или модуль, что в сочетании с потоками - наверное ужасный стиль программирования и хаос.
А если делать все через хабы - то задача поиска сбойного при закрытии модуля сводится к вызове в каждом модуле процедуры записи своей метки в лог, инициируемой событием OnClose и передаваемой через хаб последовательно во все модули, пока проблемный не обнаружит себя.
То есть, как только захочется использовать событие с выхода другого модуля - надо бить себя по рукам (лучше по голове) - и использовать событие с хаба. А с модулей - брать только данные с нижних точек. Тогда все будет идеально последовательно. Для организации задержек, пока модуль обрабатывет данные и они не готовы - использовать таймеры.