Igor08 писал(а):
Если у меня программа вылетает при кольцевании с ошибкой c0000005, наверно тогда переполняется стек вызовов функций или теряется связь с данными? Возможно этот стек как-то очистить?Igor08 писал(а):
Такая ошибка появляется, если не использовать DeferredEvent. С этим элементом программа работает до определенного момента, потом не выполняет расчеты до конца.Igor08 писал(а):
А после hub они выполняются почти параллельно, одновременно можно сказать? Или пока по одной ветки все не выполнится после hub, другая выполнятся не будет?Igor08 писал(а):
Надо чтобы в программе много раз выполнялись одни и те же элементы.Если есть ответ "сколько" в виде числа - значит используется компонент For вкладки "Логика". Если ответа "сколько" нету, то должен быть ответ "а когда следует прекратить повторять?". В этом случае используется компонент Repeat с проверкой условия в нём самом, либо условие ставится "1=1" ("повторять бесконечно"), а проверка условий для прекращения повтора делается в самом событии компонента с вызовом
Если твоя задача, условно, "электронные часы", когда просто нужно с каким-то интервалом повторять некоторое действие - используй компонент Timer. Если нужно остановить таймер - опять же, определись при каком условии он должен остановиться.
Итак, у тебя, вероянто, наличествует логика "если произошло то и то (например, случилась ошибка) - надо повторить операцию". Что ты и решил кольцеванием. Это, как я понимаю, ближе к мышлению в бытовой жизни.
Ты должен переделать мышление: "повторять нужное мне действие до тех пор, пока не произойдёт то и это". И использовать для этого компонент Repeat с условием "1=1", проверять условие после каждого повтора (или перед) и вызвать
Попробую подытожить:
1) Неправильная логика: выполнить действие -> проверить условие -> повторить действие
2) Правильная логика: циклично выполнять действие -> проверить условие -> прекратить повтор