Асинхронный вызов функции
-
По дэфолту, когда вызываются асинхронные функции, то главный поток их не ждёт, а продолжает работу?
-
@itzpvpsher said in Асинхронный вызов функции:
По дэфолту, когда вызываются асинхронные функции, то главный поток их не ждёт, а продолжает работу?
Да, по этому она и называется "асинхронная"
-
@Fox
Тогда почему я хочу 8 потоков в ряд запустить
Но в логе все пишется как поток 2
И почему они моментально завершаются с сообщением ОК, если там 600 действий, которые он не мог никак выполнить за милисекунду)
-
@itzpvpsher said in Асинхронный вызов функции:
@Fox
Тогда почему я хочу 8 потоков в ряд запустить
Но в логе все пишется как поток 2
И почему они моментально завершаются с сообщением ОК, если там 600 действий, которые он не мог никак выполнить за милисекунду)Скорее всего ваш поток завершается ошибкой, вероятнее всего вы в новом потоке используете локальные переменные объявленные вне вызываемой функции
-
@Fox Тогда почему не пишется ошибка, а пишется "завершено успешно"? И ещё, данные я передаю с предыдущей функции
-
@itzpvpsher said in Асинхронный вызов функции:
@Fox Тогда почему не пишется ошибка, а пишется "завершено успешно"?
Это особенность реализации действия, вызванные функции всегда завершаются "успешно", даже если их принудительно завершить ошибкой.
@itzpvpsher said in Асинхронный вызов функции:
И ещё, данные я передаю с предыдущей функции
Самую вероятную причину такого поведения я назвал, больше гадать не буду, смысла нет.
-
@Fox С помощью лога после каждого действия, я увидел где происходит ошибка.
На вот этом кубикеХотя перед этим, я паршу номер потока
Да и в режиме записи все отлично работает
-
@itzpvpsher said in Асинхронный вызов функции:
@Fox С помощью лога после каждого действия, я увидел где происходит ошибка.
На вот этом кубикеХотя перед этим, я паршу номер потока
И как бы вы хотели, что бы я смог вам указать на эту ошибку?
Да и в режиме записи все отлично работает
В режиме "записи" всё выполняется в один поток. Повторюсь, вновь созданные потоки не имеют локального окружения, локальные переменные объявленные до вызова функции для них недоступны.
-
@Fox said in Асинхронный вызов функции:
В режиме "записи" всё выполняется в один поток. Повторюсь, вновь созданные потоки не имеют локального окружения, локальные переменные объявленные до вызова функции для них недоступны.
Кубик, который парсит значение потока находится в этой же функции, то есть все должно работать. Тем более после того, как я включаю запись, я сразу же захожу на эту функцию, и начинаю с неё, и ошибки на этом кубике if не возникает
-
@Fox у Вас нет предположений почему так может быть?
-
@itzpvpsher said in Асинхронный вызов функции:
@Fox said in Асинхронный вызов функции:
В режиме "записи" всё выполняется в один поток. Повторюсь, вновь созданные потоки не имеют локального окружения, локальные переменные объявленные до вызова функции для них недоступны.
Кубик, который парсит значение потока находится в этой же функции, то есть все должно работать.
Тем более после того, как я включаю запись, я сразу же захожу на эту функцию, и начинаю с неё, и ошибки на этом кубике if не возникаетВы, блин, серьёзно? Вы сейчас смотрите в свой скрипт и отметаете версии, которые я пытаюсь !угадать!. По поводу режима "записи" я уже сказал выше. Или прикладывайте тестовый скрипт, или описывайте ошибку по человечески, я не гадалка.
@itzpvpsher said in Асинхронный вызов функции:
@Fox у Вас нет предположений почему так может быть?
Да, есть! У вас ошибка
-
@Fox Да, Вы правы. Нашёл ошибку. Я очень туплю в последнее время что-то(
-
@Fox ДАААА! РАБОТАЕТ! Правда такой софт сложный создал, что сам бас лагает)
-
@Fox Только есть ещё один вопрос, почему все потоки в логе отображаются как поток №2, если я запускаю потоки друг за другом. И они по сути должны быть паралельно друг с другом
-
@itzpvpsher said in Асинхронный вызов функции:
@Fox Только есть ещё один вопрос, почему все потоки в логе отображаются как поток №2, если я запускаю потоки друг за другом. И они по сути должны быть паралельно друг с другом
Смотрите настройки действия:
-
@Fox Ну у меня количество одновременных функций: 100, остальные настройки отвечают за другое.
И вторая функция почему-то вызывается, после завершения первой
-
@itzpvpsher, какой вообще смысл запускать асинхронную функцию столько раз, каждая отдельным кубиком?
-
@Agnest said in Асинхронный вызов функции:
@itzpvpsher, какой вообще смысл запускать асинхронную функцию столько раз, каждая отдельным кубиком?
Не торопите пользователя, возможно он постепенно дойдёт до циклов
:D
-
@Fox какие циклы, там функия одна, но входящие параметры то разные
-
@itzpvpsher said in Асинхронный вызов функции:
@Fox какие циклы, там функия одна, но входящие параметры то разные
Поместите все параметры в список и вызывайте функцию в цикле, аргументы берите из списка по индексу счётчика итераций cycle_index