Возможно ли остановить C# скрипт?

Mostick

Client
Регистрация
09.06.2019
Сообщения
61
Благодарностей
23
Баллы
8
Вопрос конечно же новичка.

Допустим есть цикл

К примеру

upload_2019-8-3_16-33-19.png



Как принудительно остановить кубик при нажатии на кнопку "СТОП" в Zennoposter
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 613
Благодарностей
4 601
Баллы
113
Именно стоп именно в зеннопостер? Не в проджект мейкере?
 

Mostick

Client
Регистрация
09.06.2019
Сообщения
61
Благодарностей
23
Баллы
8
Да не важно. Когда работает C# цикл в Project Maker или ZennoPoster. При нажатии кнопки СТОП скрипт не останавливается до момента полного выполнения C# кубика.

Возможно ли настроить исключения?
Что то типа

if(project.isStopped)
{
trhow new Exception();
}
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 379
Благодарностей
3 303
Баллы
113
Возможно ли настроить исключения?
Да.
C#:
if(((ZennoLab.InterfacesLibrary.ProjectModel.Collections.IContextExt)project.Context).IsInterrupted) throw new Exception("Прерывание в ZP");
if(Global.Variables.IsProjectMaker && !Global.Variables.IsDebugMode) throw new Exception("Прерывание в PM");
 
  • Спасибо
Реакции: Mostick

Mostick

Client
Регистрация
09.06.2019
Сообщения
61
Благодарностей
23
Баллы
8
Большое спасибо!
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 333
Благодарностей
5 431
Баллы
113
Или просто закрыть зенку.
 

Mostick

Client
Регистрация
09.06.2019
Сообщения
61
Благодарностей
23
Баллы
8

doc

Client
Регистрация
30.03.2012
Сообщения
8 613
Благодарностей
4 601
Баллы
113
Да.
C#:
if(((ZennoLab.InterfacesLibrary.ProjectModel.Collections.IContextExt)project.Context).IsInterrupted) throw new Exception("Прерывание в ZP");
if(Global.Variables.IsProjectMaker && !Global.Variables.IsDebugMode) throw new Exception("Прерывание в PM");
конкретно со стопом не сработает в зенно, только прерывание. Поэтому и спрашивал. Для стопа там нужно парсить состояние проекта
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 333
Благодарностей
5 431
Баллы
113

Mostick

Client
Регистрация
09.06.2019
Сообщения
61
Благодарностей
23
Баллы
8
Просто перезапускаете и все.
Да это понятно что можно перезапустить, вопрос в том как это сделать ПО ПРАВИЛЬНОМУ.

Я пишу код регистратора для определенного приложения. После создания аккаунта нужна некоторая задержка 300 секунд. После чего можно начинать работать.

Использования кубиков работает отлично, но если писать в самом коде

Код:
System.Threading.Thread.Sleep(300000);
Тогда скрипт нереально прервать если что то пошло не так.
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 379
Благодарностей
3 303
Баллы
113
После создания аккаунта нужна некоторая задержка 300 секунд. После чего можно начинать работать.
Тогда, перед исключением, стоит добавить сохранение важных данных.
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 223
Баллы
113
Да это понятно что можно перезапустить, вопрос в том как это сделать ПО ПРАВИЛЬНОМУ.

Я пишу код регистратора для определенного приложения. После создания аккаунта нужна некоторая задержка 300 секунд. После чего можно начинать работать.

Использования кубиков работает отлично, но если писать в самом коде

Код:
System.Threading.Thread.Sleep(300000);
Тогда скрипт нереально прервать если что то пошло не так.
Никто не мешает разбить паузу на секундные циклы и проверять в конце каждого цикла флаг прерывания.
 

Mostick

Client
Регистрация
09.06.2019
Сообщения
61
Благодарностей
23
Баллы
8
Никто не мешает разбить паузу на секундные циклы и проверять в конце каждого цикла флаг прерывания.
Так я об этом и спрашивал) Как проверить прервано ли)))
Именно это я и хотел сделать, уже все работает, спасибо)
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)