@Fox Да Спасибо, сори не увидел
Вызов функции в несколько потоков (запутался)
-
@mmaxsmile said in Вызов функции в несколько потоков (запутался):
3 потока по 3 раза каждый
3*3=9 а у тебя кол-во выполнений 3 стоит. Если я нигде не ошибся
-
@mmaxsmile said in Вызов функции в несколько потоков (запутался):
@serrgo создал тестовый скрипт test.xml по какой то причине 5 успешных выполнений, а не 9.
Подскажите что не так делаю пожалуйста.
Смотрите, вы установили параметры действия "Вызов функции в несколько потоков" по 3

посмотрите подсказку поля "успешных выполнений"

Другими словами BAS будет запускать потоки до тех пор, пока условие количества успешных или неудачных выполнений не будет выполнено.
В вашем скрипте, в функции "Nice" только действие "сон", BAS запускает потоки по очереди и они по очереди завершаются, как только количество успешных завершений стало 3 BAS перестал запускать новые потоки, но в работе ещё оставались два потока, которые после действия "сон" так же завершились.
По этому в отчёте у вас 5 успешных завершений.После завершения всех потоков в действии "Вызов функции в несколько потоков" завершилось и само действие, так как в основном потоке более у вас нет действий, то поток просто завершился.
По этому в отчёте у вас 5 успешных завершений и одно завершение Ок. -
@Fox понял, однако вопрос немного не до конца раскрыт.
Можно ли как то завершить именно 9 потоков Nice внутри скрипта? (не создавая лишних)Потому что из идей только поставить глобальную функцию и ориентироваться по ней (добавлять +1 запущенных потоков) и отключать остатки по достижению 9, но может есть более простое решение?
-
@mmaxsmile said in Вызов функции в несколько потоков (запутался):
@Fox понял, однако вопрос немного не до конца раскрыт.
Можно ли как то завершить именно 9 потоков Nice внутри скрипта? (не создавая лишних)Используйте действие "Вызов функции асинхронно" и "for"
Потому что из идей только поставить глобальную функцию и ориентироваться по ней (добавлять +1 запущенных потоков) и отключать остатки по достижению 9, но может есть более простое решение?
Глобальную функцию? Не уверен, что понял вас правильно, но если что в теме "лайфхаки" я выкладывал пример как можно управлять количеством потоков во время работы скрипта:
https://community.bablosoft.com/topic/3521/лайфхаки-bas/87

