Корректная остановка BAS

Поддержка
  • @tet-vivi, за эту секунду, может завершиться одна из десятка мелких асинхронных задач, и её нужно будет либо побыстрее перезапускать с другими параметрами, либо побыстрее запускать другую функцию асинхронно.
    Да, наверное, 1 секунды для главного цикла - слишком мало, соглашусь, но это пока для тестов.
    Потом этот параметр тоже выведу в ресурс, чтобы можно было менять при запуске скрипта

  • @Dizelyator асинхронные функции в бас вроде как поддерживают очередь.
    то есть можно стразу отправить все задачи туда, а бас как появится свободный поток его сразу запустит.

  • Подниму тоже топик. Полностью согласен с Dizelyator и удивлен полному игнору со стороны разработчика и поддержки.

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

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

    PS Есть еще один вариант. Запускать скрипт в 1 поток бесконечно. Да, такой вариант, вполне годен, но есть одно НО. Такой поток будет, простите за выражение, постоянно срать в лог и в отчет своим "поток завершился ОК"

  • @Ajshma said in Корректная остановка BAS:

    Но отследить то, что пользователь нажал завершить скрипт через ожидание выполнения потоков, в данный момент невозможно.

    Не совсем так, все возможно.

    Например, можно иметь кастомный интерфейс к программе. И собственные кнопки завершения, по нажатии на которые можно сделать любую логику в программе.

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

  • @Ajshma said in Корректная остановка BAS:

    К примеру требуется регулировать количество запущенных потоков динамически, либо циклически вызывать какие то действия.

    https://community.bablosoft.com/topic/3521/лайфхаки-bas/84

  • @mister40mrdoors said in Корректная остановка BAS:

    Вы бы подробнее описали свой кейс - для чего вы используете асинхронный вызов.

    Я подробно достаточно описал то, что требуется. Если Вам непонятно, увы...

    Я понимаю, что вы наверняка больше меня знаете (ну или так думаете). Но вызов асинхронных функций, это черный ящик по большому счету, и если можно задачу решать обычными потоками, то лучше на мой субъективный взгляд, решать ее через обычные потоки.

    Если по существу проблемы ответить нечего, то оставьте свое субъективное мнение при себе. Просто на просто оно не несет никакой смысловой нагрузки.

    А управлять динамичностью потоков можно через ресурс из файла например.

    Повторяю, Ваше мнение - не несет никакой смысловой нагрузки. Как реализовать динамическое управление потоками я могу перечислить с десяток вариантов, и лучшее решение сейчас уже реализовано у меня. Проблема, если не доходит, лично до Вас - завершить скрипт через выбор "ждать каждый поток". Вот если у вас будет решение - с удовольствием выслушаю.

    @Fox said in Корректная остановка BAS:

    https://community.bablosoft.com/topic/3521/лайфхаки-bas/84

    Нет проблемы управлять количеством потоков динамически. Есть проблема в том, что выбор остановки скрипта через "ждать каждый поток" - не завершает сам скрипт из-за того, что управляющий поток не может быть остановлен.

    Требуется или событие, которое сообщает, что БАС ожидает остановку потоков, или не запускать асинхронные функции, стоящие в очереди, в работу.

  • @sergerdn

    @sergerdn said in Корректная остановка BAS:

    Не совсем так, все возможно.

    Конечно возможно. И даже один вариант я описал, но это все костыли.

    Например, можно иметь кастомный интерфейс к программе. И собственные кнопки завершения, по нажатии на которые можно сделать любую логику в программе.

    И это костыль. Мы же просим нормальное, логичное решение со стороны БАСа.

  • @Ajshma Слушай, нос задрал и ладно, я тут дольше тебя на этом форуме и по совокупности если взять все мои тут аки - и по репутации. Письками, меряться не буду.
    А по теме - если не использовать матрешку - параллельные потоки в параллельных потоках - то все прекрасно завершается.
    Лень кейс описывать - твои проблемы.

  • @mister40mrdoors и опять только воздух испортил. Очень напоминает на манеру дакдака...

  • @Ajshma Да да один из них - и то что тут немного наконфликтил - это это никак не отменяет опыта.

  • @Ajshma said in Корректная остановка BAS:

    @sergerdn

    @sergerdn said in Корректная остановка BAS:

    Не совсем так, все возможно.

    Конечно возможно. И даже один вариант я описал, но это все костыли.

    Например, можно иметь кастомный интерфейс к программе. И собственные кнопки завершения, по нажатии на которые можно сделать любую логику в программе.

    И это костыль. Мы же просим нормальное, логичное решение со стороны БАСа.

    Кастомный интерфейс совсем не костыль ни разу. А как раз стандартная возможность сделать все, что угодно разработчику.

    Другое дело, что требования к разработчику резко возрастают.

    Плюс еще нюансы, что документации толком нет, разные люди наступают на одни и те же грабли, набивают одни и те же шишки и делают это по тихому. Так что другим разработчикам опять приходится проходить тот же путь.

  • @mister40mrdoors said in Корректная остановка BAS:

    @Ajshma Да да один из них - и то что тут немного наконфликтил это это никак не отменяет опыта.

    Ну вот видишь, может пора меняться? Вроде как опыт есть (по твоему мнению), а кроме как пустословить - ничего предложит не можешь. Вот, давай, если ты такой опытный:
    Как завершить поток, который работает в цикле, через выбор остановить скрипт "ожидать каждый поток"?

  • @mister40mrdoors said in Корректная остановка BAS:

    @Ajshma Да да один из них - и то что тут немного наконфликтил это это никак не отменяет опыта.

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

  • @sergerdn said in Корректная остановка BAS:

    Другое дело, что требования к разработчику резко возрастают.

    И самое главное время разработки, я сам им лично почти не пользуюсь, хотя хорошо в нем разобрался и даже переписал api на более удобное. Но как показывает практика если не пишешь проект для массовых продаж, то этот интерфейс никому не нужен ) А для собственного использования у меня получается обходиться без него, может не так красиво, но личное время это тоже деньги.

  • @sergerdn Кастомный интерфейс костыль - потому, что у меня несколько сотен настроек в интерфейсе. И работа с интерфейсом продолжается уже третий год, каждый день изменяясь. Это я про то, что в принципе работа над скриптом идет очень плотно, и нет времени на постоянную доработку еще и вебинтерфейса. Мало того, если бы автоматическое портирование обычного интерфейса работало корректно - как то оптимизировать можно было. Но к примеру, даже стандартный модуль списка драг-энд-дропа портирование сделать не может, и нужно ручками корячить свои решения.

    А проблема решается всего то просто очисткой очереди ассинхронных функций, если пользователь решил остановить скрипт. Все. Проблемы нет.

  • @UserTrue said in Корректная остановка BAS:

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

    То есть - то что я уточнил у человека, для чего он в потоках использует асинхронный вызов - это по твоему токсичность ?
    Или токсичность все же то как он ответил на предложение изложить реальный кейс ?

    По твоей логике самый токсичный человек тут фокс, который все время уточняющие вопросы задает ...

  • @mister40mrdoors said in Корректная остановка BAS:

    По твоей логике самый токсичный человек тут фокс, который все время уточняющие вопросы задает ...

    Нет

    А вы да:
    @mister40mrdoors said in Корректная остановка BAS:

    @Ajshma Слушай, нос задрал и ладно, я тут дольше тебя на этом форуме и по совокупности если взять все мои тут аки - и по репутации. Письками, меряться не буду.

  • @Ajshma said in Корректная остановка BAS:

    @sergerdn Кастомный интерфейс костыль - потому, что у меня несколько сотен настроек в интерфейсе. И работа с интерфейсом продолжается уже третий год, каждый день изменяясь.

    Не хочется вступать в холивар, но костыль - это нестандартное решение. А кастомный интерфейс - стандартное.

    В твоем случае основная боль, что есть куча кода, которая была рассчитана на обычный стандартный интерфейс и все переписывать долго и тяжко. Так бывает, это не редкость.

    Я даже делал так, что писал сайтик, оборачивал его в Electron JS и где-то сбоку был прикручен браузер BAS. И это решение тоже было абсолютно стандартное.

    Есть пара скриншотов:
    https://community.bablosoft.com/topic/24173/готов-заказать-много-разных-программ-на-bas/37

  • @UserTrue said in Корректная остановка BAS:

    @mister40mrdoors said in Корректная остановка BAS:

    По твоей логике самый токсичный человек тут фокс, который все время уточняющие вопросы задает ...

    Нет

    А вы да:
    @mister40mrdoors said in Корректная остановка BAS:

    @Ajshma Слушай, нос задрал и ладно, я тут дольше тебя на этом форуме и по совокупности если взять все мои тут аки - и по репутации. Письками, меряться не буду.

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