Приложение BAS крэшится при запуске кода из функции OnApplicationStart при использовании скрипта в режиме "Повторять"

Поддержка
  • BAS версия
    27.5.0
    27.4.0

    В моем скрипте происходит запуск кода из функции OnApplicationStart. В этой функции идет инициализация глобальных переменных, а так же запускается код, в котором запускается браузер и проходят какие-то действия на странице.

    Дизайн скрипта:
    В скрипте реализован многопоток, а так же следующие ресурсы:
    885f75cd-c786-4b52-8a95-14fd9ab3a86e-image.png

    Threads - количество потоков;
    Launch Mode - комбобокс с вариантами запуска скрипта:
    Profiles Root Folder Path - корневая папка, где находятся все профили;
    Profile Data Source File - csv с информацией о каждом профиле;

    ВАЖНО
    В одном из режимов запуска Launch Mode, в котором возникает ошибка, никакие из ресурсов не задействованы, то есть запуск в каждом из профилей не предусмотрен в принципе. Задача конкретно этого куска кода - запуститься 1 раз, собрать данные на сайте и сохранить их в файл (именно поэтому этот код запускается из функции OnApplicationStart), но по какой то причине сбой происходит именно из за режима запуска "Повторять", который предназначен для запуска с использованием ресурсов.

    Что конкретно происходит при ошибке
    Судя по логам, скрипт отрабатывает успешно и сразу после окончания работы, приложение BAS закрывается без каких-либо ошибок в консоли или в самой Windows.

    Если открыть лог файл после такого крэша, то видно, что по какой-то причине выводятся записи об успешном выполнении потока и так более 100 раз, хотя, как было выше сказано, эта часть кода находится в функции OnApplicationStart и должна запускаться 1 раз и в 1 поток.
    5bac5d33-c73a-4345-86b7-bfc9177a84fb-image.png

    Допольнительная информация
    Если в настройках скрипта в режиме записи поменять режим запуска на "Один раз", то крэша не происходит и скрипт завершается корректно, но это совершенно не подходит под задачи всего скрипта, т.к. менять режим запуска туда-сюда, вообще не вариант.
    532699cd-82e2-482e-b74d-ee8143e8aa92-image.png

  • @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

  • @demonicon
    Если добавление сна не поможет, просьба прикрепить тестовый проект с частью кода, который вызвает проблему, сюда или в ЛС форума.