@GhostZ ок, отлично! благодарю
Приложение 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