Но появилась новая проблема. Иногда скрипт во время работы внезапно запрещает выделять действия. Т.е при клике на любое действие, оно просто не выделяется красным. Это второй баг, независимый от первого если что
Приложение BAS крэшится при запуске кода из функции OnApplicationStart при использовании скрипта в режиме "Повторять"
-
BAS версия
27.5.0
27.4.0В моем скрипте происходит запуск кода из функции OnApplicationStart. В этой функции идет инициализация глобальных переменных, а так же запускается код, в котором запускается браузер и проходят какие-то действия на странице.
Дизайн скрипта:
В скрипте реализован многопоток, а так же следующие ресурсы:

Threads - количество потоков;
Launch Mode - комбобокс с вариантами запуска скрипта:
Profiles Root Folder Path - корневая папка, где находятся все профили;
Profile Data Source File - csv с информацией о каждом профиле;ВАЖНО
В одном из режимов запуска Launch Mode, в котором возникает ошибка, никакие из ресурсов не задействованы, то есть запуск в каждом из профилей не предусмотрен в принципе. Задача конкретно этого куска кода - запуститься 1 раз, собрать данные на сайте и сохранить их в файл (именно поэтому этот код запускается из функции OnApplicationStart), но по какой то причине сбой происходит именно из за режима запуска "Повторять", который предназначен для запуска с использованием ресурсов.Что конкретно происходит при ошибке
Судя по логам, скрипт отрабатывает успешно и сразу после окончания работы, приложение BAS закрывается без каких-либо ошибок в консоли или в самой Windows.Если открыть лог файл после такого крэша, то видно, что по какой-то причине выводятся записи об успешном выполнении потока и так более 100 раз, хотя, как было выше сказано, эта часть кода находится в функции OnApplicationStart и должна запускаться 1 раз и в 1 поток.

Допольнительная информация
Если в настройках скрипта в режиме записи поменять режим запуска на "Один раз", то крэша не происходит и скрипт завершается корректно, но это совершенно не подходит под задачи всего скрипта, т.к. менять режим запуска туда-сюда, вообще не вариант.

-
@demonicon Интерфейс приложения зависает из за больших или бесконечных циклов без задержки, зависшее приложение закрывает винда. Тип запуска "повторять" превращает ваш скрипт в бесконечный цикл без задержки, если в первых же действиях есть ошибки. Что бы это определить добавьте первым действием в функцию Main сон на минимальное время.
-
@Fox said in Приложение BAS крэшится при запуске кода из функции OnApplicationStart при использовании скрипта в режиме "Повторять":
@demonicon Интерфейс приложения зависает из за больших или бесконечных циклов без задержки, зависшее приложение закрывает винда. Тип запуска "повторять" превращает ваш скрипт в бесконечный цикл без задержки, если в первых же действиях есть ошибки. Что бы это определить добавьте первым действием в функцию Main сон на минимальное время.
Спасибо за ответ. В функции Main нет никакого вызова функций. Можно сказать, что Main совсем пустой и вся логика данного куска кода проходит только в OnApplicationStart и самому скрипту просто негде зацикливаться. Все проходит в 1 потоке и никаких ошибок в самом скрипте нет. Все указанные мной ресурсы и кол-во потоков должны игнорироваться в данной ситуации и при данном виде запуска.
-
@demonicon said in Приложение BAS крэшится при запуске кода из функции OnApplicationStart при использовании скрипта в режиме "Повторять":
@Fox said in Приложение BAS крэшится при запуске кода из функции OnApplicationStart при использовании скрипта в режиме "Повторять":
@demonicon Интерфейс приложения зависает из за больших или бесконечных циклов без задержки, зависшее приложение закрывает винда. Тип запуска "повторять" превращает ваш скрипт в бесконечный цикл без задержки, если в первых же действиях есть ошибки. Что бы это определить добавьте первым действием в функцию Main сон на минимальное время.
Спасибо за ответ. В функции Main нет никакого вызова функций. Можно сказать, что Main совсем пустой и вся логика данного куска кода проходит только в OnApplicationStart и самому скрипту просто негде зацикливаться. Все проходит в 1 потоке и никаких ошибок в самом скрипте нет. Все указанные мной ресурсы и кол-во потоков должны игнорироваться в данной ситуации и при данном виде запуска.
Ещё раз говорю, добавьте сон первым действием в функции Main и OnApplicationStart