Я хочу перенести в зеннопостер мой код, написанный для консоли, и там выход сделан или через закрытие окна консоли или через ожидание нажатие любой клавиши в консоли.
Первое что надо понять, это что зенка выполняет шаблон пошагово. Другими словами это большой метод, ну или типа процедурное программирование.
Если пытаться запихать в зенку код который работает с событиями то тут уже без костылей не обойтись.
Если запустить что то из кубика зенки, которое будет генерить событие, то зенка не будет ждать, шаблон просто тупо завершит работу после того как будет выполнен кубик с кодом.
Поэтому, надо делать типа "обертку" поверх событийного кода, вариантов можно придумать много, но самый простой, это добавить в свой класс флаг - работаем/не работаем.
И в самом шабе сделать цикл, который будет этот флаг чекать, с определенным интервалом, соответственно шаб будет или продолжать работать, или остановится.
В своем же классе, надо этот флаг устанавливать в начале в true, что работаем, а при выполнении каких то условий false. Что и будет сигналом для завершения работы шаблона.
Данные из обработчика события пихаем в переменную/свойство, которое будет дергаться из шаба и что то делать с ним. Можно сделать сколько надо.
Примерно так.
Накидал псевдо класс Client, который генерит событие раз в 1 сек.
И основной класс Test, через который и будет идти работа с основным классом.
Ну и собственно сам шаб.
Создаем объект, вызываем метод Init(), который и запустит всю работу.
Объект пихаем в project.Context, для дальнейшей работы.
Тут собственно сама проверка, работаем дальше или нет.
А тут интервал, через который проверяем флаг.
Почему паузу делать через отдельный кубик, ведь можно же в одном сделать цикл, и там паузу.
Если через отдельный кубик, то на паузе можно поставить бряк и работа остановится, это если в мейкере, если в постере, то при прерывании тоже все норм.
Если же сделать цикл с паузой и проверку в одном кубике, то в мейкере и постере шаб тупо зависнет.
Ну сейчас в новых версиях сделали принудительное прерывание выполнение кода, если например нажата кнопка стоп в мейкере, поэтому попроще. Но лучше все таки делать цикл через два кубика - в одном проверка, в другом пауза.
Постарался объяснить максимально просто, насколько это возможно.
Ну и на последок, пихать в зенку событийный код, это то еще извращение.