Степан Митькин писал(а):
Можете предложить, как?
Знал бы -- предложил бы.
Не появляется идей, когда оно выглядело бы компактно, понятно и т.п.
Варианты на уровне "пальцем в небо" (не сказать, что они прямо плохие, но у каждого из них я вижу недостатки):
а) Из синхронизатора (или из "времени группы") отращивать новую ветку вниз, на которую переходит выполнение в случае "превышен интервал ожидания". Если синхронизатор можно навесить справа (например, к "действию" или к развилке, оба конца которой идут вниз), то это даже может и нормально смотреться. Но в случае "цикла со стрелкой" (ну когда стрелка идёт наверх) справа синхронизатор не особо прицепишь.
б) Вообще останавливать Дракон-схему при наступлении таймаута. Тут, конечно, вопрос "как в обработчике" понять какое именно действие превысило указанную длительность, но может оказаться, что вариант "вообще все timeout'ы обрабатываются одинаково" не самый плохой с точки зрения надёжности. Как-никак, будет гарантия, что все timeout'ы обработаны. Это что-то сродни "обработке исключений" типа "деление на ноль".
Минус тут в том, что зачастую нужны алгоритмы в духе "если возникла ошибка, то позвать оператора, дождаться когда он починит, и продолжить с того же места". Т.е. нужна не семантика "полного останова", а именно "продолжение с проблемного шага".
в) Если "ожидание" допустимо только у икон с
одной веткой, смотрящей вниз (например, допустимо у "цикла со стрелкой" или у развилки, у которой одна из стрелок возвращается вверх, но недопустимо у развилки, у которой оба продолжения смотрят вниз), то можно договориться, что в случае "превышения времени ожидания", управление всегда проваливается вниз, где можно проверить "дождались-не дождались".
Например, на картинке 20180225160031 (в этой теме) развилка "ДВК" (сразу после комментария "4") двумя своими ветками смотрит вниз, и вариант "в" для неё не получится. Ну, невозможно сказать "в случае превышения длительности переходи к следующему шагу". Какой там следующий (yes или no)?
Степан Митькин писал(а):
Предлагаю такой вариант...Переменная таймаут
Это ещё плохо и тем, что образовалось единственное место, где используется слово "переменная". Это при том, что в Дракон-схемах вообще плохо с "переменными", "данными", "областями видимости" и т.п.
Думаю, хорошо бы попробовать сначала визуальные варианты, а текстовые (названия переменных и т.п.) использовать тогда, когда по-другому никак.