Прервать работу проекта c#

baimkin

Client
Регистрация
04.08.2015
Сообщения
283
Благодарностей
111
Баллы
43
Добрый день!
Подскажите пожалуйста кто знает, как прервать выполнение проекта через c# код?
Т.е нужно чтоб дойдя до определенного момента в коде сработала кнопка "Стоп" на данном проекте, чтоб больше он не пытался начать работать по новой, и далее проект полностью отключился через кнопку "Прервать".
upload_2017-4-3_13-53-42.png

Так же может кто знает, как через c# продолжить работу проекта с выбранного кубика?
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 812
Благодарностей
6 038
Баллы
113

baimkin

Client
Регистрация
04.08.2015
Сообщения
283
Благодарностей
111
Баллы
43
Спасибо большое!
 
  • Спасибо
Реакции: VladZen

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 570
Благодарностей
10 103
Баллы
113
мне оч. стыдно, но чо то нифига не вышло..
объясните как пользоваться примерами кода из материалов по этим ссылкам..
задача простая - сделать Стоп или Прервать изнутри шаблона..
то есть, чтобы шаблон сам себя выключил, как бы..
примеры кода нормально отрабатывают, но стопа или прерывания у меня не происходит..
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 652
Баллы
113
мне оч. стыдно, но чо то нифига не вышло..
объясните как пользоваться примерами кода из материалов по этим ссылкам..
задача простая - сделать Стоп или Прервать изнутри шаблона..
то есть, чтобы шаблон сам себя выключил, как бы..
примеры кода нормально отрабатывают, но стопа или прерывания у меня не происходит..
Код:
ZennoPoster.StopTask(Guid.Parse(project.TaskId));
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 570
Благодарностей
10 103
Баллы
113
Последнее редактирование:
  • Спасибо
Реакции: doc

ukrainec2014

Client
Регистрация
12.05.2017
Сообщения
351
Благодарностей
52
Баллы
28
спасибо, все работает.. :-)
А как прервать работу шаблона в зеннопостере если после "Остановить" и "Прервать" - все равно он выполняет действия? типа дорабатывает до конца задачу

ПС
Сейчас только помогает вырубить зенку и опять включить.. только это останавливает шаблон!
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 374
Благодарностей
2 043
Баллы
113
C# кубик и в нём код

C#:
if (Global.Variables.IsProjectMaker && !Global.Variables.IsDebugMode) throw new Exception();
if (((ZennoLab.InterfacesLibrary.ProjectModel.Collections.IContextExt)project.Context).IsInterrupted) throw new Exception();
ну и если проект браузерный и на кубиках то такой кубик ставить там где тебе угодно
 
  • Спасибо
Реакции: Sho и Mikhail B.

ukrainec2014

Client
Регистрация
12.05.2017
Сообщения
351
Благодарностей
52
Баллы
28
ну и если проект браузерный и на кубиках то такой кубик ставить там где тебе угодно
спасибо, а как прервать именно в зеннопостере и именно тогда когда нужно (заранее не знаю когда наступит момент, слежу по таймингу и по инстансу смотрю что делается)
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 374
Благодарностей
2 043
Баллы
113
спасибо, а как прервать именно в зеннопостере и именно тогда когда нужно (заранее не знаю когда наступит момент, слежу по таймингу и по инстансу смотрю что делается)
этот код и для ПМ и для ЗП, а вот когда именно тебе надо прервать то тут не понятно

нажимаешь прервать и он остановится
 

ukrainec2014

Client
Регистрация
12.05.2017
Сообщения
351
Благодарностей
52
Баллы
28
этот код и для ПМ и для ЗП, а вот когда именно тебе надо прервать то тут не понятно

нажимаешь прервать и он остановится
может я не так выразился, постараюсь поподробнее...

вот есть шаблон, например он уже выполняется 60 минут, я вижу что он уже пошел не туда куда надо или выполнил действие и зациклился (не судите сам шаблон, это только для примера) и мне надо остановить его. Средствами ZP ("Остановить" и "Прервать") шаблон все равно продолжает работу до логического конца...

и вот тут логичный вопрос, как же все таки его остановить? (пока помогает только перезапуск ZP)
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 374
Благодарностей
2 043
Баллы
113
может я не так выразился, постараюсь поподробнее...

вот есть шаблон, например он уже выполняется 60 минут, я вижу что он уже пошел не туда куда надо или выполнил действие и зациклился (не судите сам шаблон, это только для примера) и мне надо остановить его. Средствами ZP ("Остановить" и "Прервать") шаблон все равно продолжает работу до логического конца...

и вот тут логичный вопрос, как же все таки его остановить? (пока помогает только перезапуск ZP)
я тебе дал код, нажимаешь именно прервать и он останавливается если ты такой код выставишь после каждого кубика если у тебя проект с кубиков +100500, то тебе и надо такой кубик размножить в нужных местах
 
  • Спасибо
Реакции: ukrainec2014

ukrainec2014

Client
Регистрация
12.05.2017
Сообщения
351
Благодарностей
52
Баллы
28
я тебе дал код, нажимаешь именно прервать и он останавливается если ты такой код выставишь после каждого кубика если у тебя проект с кубиков +100500, то тебе и надо такой кубик размножить в нужных местах
все, теперь понял принцип работы, пошел тестить, благодарю
 

ukrainec2014

Client
Регистрация
12.05.2017
Сообщения
351
Благодарностей
52
Баллы
28
в нужных местах

Кстати заметил что "Прервать" в ZP работает если запускать просто в заданиях, а если в диспетчере заданий то не работает по такому же принципу и не останавливает шаблон!

и кубик также не помог(
это после нажатия "Прервать" через диспетчер заданий ZP
http://joxi.ru/bmo13v0CxY7MWA

вот такой шаблон
http://joxi.ru/ZrJ9PpdU9Pb9bA
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 374
Благодарностей
2 043
Баллы
113
выделяешь проект и прервать
и всё работает

и он у тебя не прервётся сразу, если он уже прошёл этот кубик то выполнит действие и прервётся на следующем где он у тебя стоит
 

ukrainec2014

Client
Регистрация
12.05.2017
Сообщения
351
Благодарностей
52
Баллы
28
и он у тебя не прервётся сразу, если он уже прошёл этот кубик то выполнит действие и прервётся на следующем где он у тебя стоит
я понимаю, если кубик 100% работает, тогда может быть проблема в зенке?

в диспетчере заданий запускаю проект, он начинает работу, на втором этапе прерываю → http://joxi.ru/gmvBy7bULWdQ6m

но он все равно дорабатывает → http://joxi.ru/DmBBbxzUwag8zm

2 раза кубик полюбому прошел!
 

ukrainec2014

Client
Регистрация
12.05.2017
Сообщения
351
Благодарностей
52
Баллы
28

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 374
Благодарностей
2 043
Баллы
113
честно с диспетчера заданий не пробывалыл ни разу
 

ukrainec2014

Client
Регистрация
12.05.2017
Сообщения
351
Благодарностей
52
Баллы
28
честно с диспетчера заданий не пробывалыл ни разу
так вот в нем как раз таки и проблема.. а работать с него удобно.. запланировал себе заданий и вперед с песней)

я же писал что проблема именно с "диспетчером заданий"
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 374
Благодарностей
2 043
Баллы
113
всё работает, добавил в диспетчер заданий и прервал без проблем

2018-12-22_032647.png

2018-12-22_032623.png
 
  • Спасибо
Реакции: ukrainec2014

ukrainec2014

Client
Регистрация
12.05.2017
Сообщения
351
Благодарностей
52
Баллы
28
добавил в диспетчер заданий и прервал без проблем
опля.. понял, значит у меня что то косячит... буду завтра переустанавливать(
спасибо за уделенное время друг мой
 

Alex733

Client
Регистрация
27.11.2017
Сообщения
348
Благодарностей
248
Баллы
43
опля.. понял, значит у меня что то косячит... буду завтра переустанавливать(
спасибо за уделенное время друг мой
Раньше я то же перезапускал зенку. Сейчас помогает уменьшение потоков до нуля и если остался зацикленный проект удаляю его из заданий в самом зеннопостере.
 

ukrainec2014

Client
Регистрация
12.05.2017
Сообщения
351
Благодарностей
52
Баллы
28
Раньше я то же перезапускал зенку. Сейчас помогает уменьшение потоков до нуля и если остался зацикленный проект удаляю его из заданий в самом зеннопостере.
проект то удаляется, но выполнение продолжается, об этом сведетельствует уведомления в зеннопостере.
проект удалил - все его нету.. а уведомления дальше идут, тоесть он продолжает выполняться..
 

z@jivalo

Client
Регистрация
27.12.2016
Сообщения
800
Благодарностей
181
Баллы
43
C#:
if (Global.Variables.IsProjectMaker && !Global.Variables.IsDebugMode) throw new Exception();
if (((ZennoLab.InterfacesLibrary.ProjectModel.Collections.IContextExt)project.Context).IsInterrupted) throw new Exception();


что-то этот код на 5.18v не хочет работать ни в pm ни в zp
поставил счетчик, если доходит до этого значения то срабатывает данный код, он то срабатывает и процесс работы шаблона все равно идет дальше.
 
Последнее редактирование:
  • Спасибо
Реакции: Sho

z@jivalo

Client
Регистрация
27.12.2016
Сообщения
800
Благодарностей
181
Баллы
43

Alex733

Client
Регистрация
27.11.2017
Сообщения
348
Благодарностей
248
Баллы
43
Еще один способ, когда нужно, что бы код отрабатывался только в PM.
Вставляю в первом кубике
C#:
project.Variables["windName"].Value = System.Diagnostics.Process.GetCurrentProcess().MainWindowTitle;
В нужном месте шаблона проверяю на наличие в переменной "ProjectMaker" и код отрабатывает только в PM.
 

z@jivalo

Client
Регистрация
27.12.2016
Сообщения
800
Благодарностей
181
Баллы
43
сорри случайно ответил,
уже запутался куда писал
 

Mikhail B.

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

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с Mikhail B. какие-либо сделки.

C# кубик и в нём код

C#:
if (Global.Variables.IsProjectMaker && !Global.Variables.IsDebugMode) throw new Exception();
if (((ZennoLab.InterfacesLibrary.ProjectModel.Collections.IContextExt)project.Context).IsInterrupted) throw new Exception();
ну и если проект браузерный и на кубиках то такой кубик ставить там где тебе угодно
Работает отлично! Спасибо.
 

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 662
Благодарностей
952
Баллы
113
Через выброс эксепшена всё отлично работает, а нету более приличного метода для остановки проекта? Ну типа при вызове метода проект просто останавливается? а не эксепшены сыпит.

вот это не работает по какой то причине

C#:
ZennoPoster.StopTask(Guid.Parse(project.TaskId));
 
  • Спасибо
Реакции: Sho

djaga

Administrator
Команда форума
Регистрация
26.04.2020
Сообщения
565
Благодарностей
1 151
Баллы
93
Через выброс эксепшена всё отлично работает, а нету более приличного метода для остановки проекта? Ну типа при вызове метода проект просто останавливается? а не эксепшены сыпит.

вот это не работает по какой то причине

C#:
ZennoPoster.StopTask(Guid.Parse(project.TaskId));
Привет.

Вероятно, вы столкнулись с тем, что метод остановки отрабатывает не так, как нужно.
Ссылка: Пример как Запустить или Остановить задачу на основе имени шаблона.
Данное решение можно упаковать в метод общего кода и использовать одной строчкой.

Так же, если вам нужна экстренная остановка метода, но без выхода по красной ветке, то всегда можно использовать конструкции: throw, try-catch, try-finally и try-catch-finallymsdn
 
  • Спасибо
Реакции: Sho и Sherminator

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