Прерывание работы в коде

Zedx

Client
Регистрация
12.06.2018
Сообщения
1 364
Благодарностей
920
Баллы
113
Как можно сделать прерывание работы шаблона в коде? Нашёл тут на форуме пару решений:
Первое не работает даже если находится между кубиков, в коде тем более (может быть работало в старых версиях):
C#:
while (true)
{
    if (((ZennoLab.InterfacesLibrary.ProjectModel.Collections.IContextExt)project.Context).IsInterrupted ||
        Global.Variables.IsProjectMaker && !Global.Variables.IsDebugMode)
    {
        throw new Exception();
    }
    
    Thread.Sleep(1000);
    project.SendInfoToLog("Новый цикл", true);
}
Второе работает если находится между кубиков, но в коде не работает:
C#:
var tasks = ZennoPoster.TasksList;
var projectName = project.Name.Replace(".zp", "").Replace(".xmz", "");

while (true)
{
    foreach (var t in tasks)
    {
        var doc = new System.Xml.XmlDocument();
        doc.LoadXml("<Task>" + t + "</Task>");
        string name = doc.SelectSingleNode("Task/Name").InnerXml;
        string status = doc.SelectSingleNode("Task/ExecutionSettings/Status").InnerXml;
        
        if (name == projectName && status == "Stop")
        {
            throw new Exception("Stop status");
        }
    }
    
    Thread.Sleep(1000);
    project.SendInfoToLog("Новый цикл", true);
}
Может быть есть какие-то актуальные рабочие решения?
 

THE CaHeK

Client
Регистрация
29.01.2016
Сообщения
296
Благодарностей
116
Баллы
43
C#:
// Стопаем шаблон
ZennoPoster.StopTask(Guid.Parse(project.TaskId));
// Прервать работу шаблона
ZennoPoster.InterruptTask(Guid.Parse(project.TaskId));
В ПМ выдаст ошибку, но в ZP будет работать.
 
Последнее редактирование:
  • Спасибо
Реакции: Zedx и material

Zedx

Client
Регистрация
12.06.2018
Сообщения
1 364
Благодарностей
920
Баллы
113
C#:
// Стопаем шаблон
ZennoPoster.StopTask(Guid.Parse(project.TaskId));
// Прервать работу шаблона
ZennoPoster.InterruptTask(Guid.Parse(project.TaskId));
В ПМ выдаст ошибку, но в ZP будет работать.
К сожалению не работает, не выходит из цикла. Но тут, как я понял, идёт сразу попытка остановить шаблон, без обработки нажатия внешней кнопки стоп.
 

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