Как в басе сделать общий таймер на выполнение всего скрипта?

Поддержка
  • Допустим у меня есть скрипт с какой то логикой, я его запускаю он идет по пунктам

    А можно как то сделать второстепенный таймер который будет отсчитывать время выполнения скрипта, что бы было ограничение выполнения скрипта скажем 5 минутами? И по истечению этого времени, завершаем проект по BadEnd, может можно как то сам поток так ограничивать? Только конечно еще нужно завершение с ошибкой, что бы данные все сохранились куда нужно

  • Ну вы можете запустить асинхронную функцию, в которой пауза и после неё действие Прервать скрипт

  • Нет все таки Асинхронная не подходит
    Так как таймер (В виде асинхронной функции я запускаю в самом начале)
    А основной поток (Из которого была запущена асинхронка) делает определенные действия и по всякому редактирует строку с данными и может где то очень долго задержаться, но строка с данными уже будет с изменениями
    И мне нужно при завершении потока по таймеру (который выполняет функция вызвана асинхрнонно)
    Записать эту строку в которой могли меняться данные, а асинхронная функция не может получить данные из основного потока, только те которые при запуске отправил

    Хотя, сейчас подумал можно наверное ресурсы для этого использовать

  • @anarbus said in Как в басе сделать общий таймер на выполнение всего скрипта?:

    асинхронная функция не может получить данные из основного потока

    Глобальные переменные доступны всем потокам.

  • @sergerdn Получается она и ресурс из основного потока не видит?
    У меня ресурс строка

  • @anarbus said in Как в басе сделать общий таймер на выполнение всего скрипта?:

    @sergerdn Получается она и ресурс из основного потока не видит?

    Я не говорил этого.

  • В общем по тестил асинхронную функцию. Она видит данные в ресурсе, но только те которые были записаны в ресурс до ее запуска. Данные которые записываются в ресурс во время выполнения асинхронки, она не видит.
    Да и поток из которого запущена асинхронная функция уже внутри асинхронной функции нельзя остановить по истечению таймера...
    Только если прервать весь скрипт...

  • @anarbus в глобальной переменной укажите время окончания работы, и пусть каждый поток периодически проверяет, не вышло ли это время, если вышло - завершить работу. А в асинхронной функции можно установить жесткий останов скрипта, если время превышено вдвое, например. Хотя, если всё отлажено, то асинхронка и не нужна.

  • 0 Votes
    5 Posts
    661 Views
  • 0 Votes
    3 Posts
    580 Views
  • 0 Votes
    1 Posts
    350 Views
  • 0 Votes
    3 Posts
    548 Views
  • 0 Votes
    2 Posts
    415 Views