Вверх ↑
Ответов: 4622
Рейтинг: 746
#1: 2017-12-12 17:56:35 ЛС | профиль | цитата
kichrot писал(а):
1) как осуществлять регулировку задержки между итерациями???
В данном случае это не имеет значения. Событие Thread.onExec не закончится до тех пор, пока не отработает метод WinExec.doExec. А в режиме WinExec.RunEvent=Wait метод doExec не возвратит управление до завершения работы запущеной программы. Когда запущенная программа завершится, произойдёт событие onExec, затем метод doExec завершится и компонент Thread пойдёт на следующую итерацию (после задержки, указанной в свойстве Delay - в данном использовании она влияет только на паузу между завершением программы и следующим запуском).
kichrot писал(а):
2) какую роль играет в ней элемент Synchronize???
По WinExec.onExec я обращаюсь к оконному элементу (вывожу строку в Memo). А само событие происходит в том потоке исполнения, в котором оно вызвано, а именно, в параллельном потоке, созданном компонентом Thread. При обращении к визуальным компонентам из параллельных потоков следует использовать компонент Synchronize, чтобы избежать ошибок конкуренции потоков. Если в цепочке события Thread.onExec ты не обращаешься ни к каким оконным элементам, то в компоненте Synchronize нету необходимости. Правильное управление параллельными потоками в приложении - это отдельная тема.
карма: 26

0