- Регистрация
- 10.09.2021
- Сообщения
- 1 248
- Благодарностей
- 673
- Баллы
- 113
Доброго времени суток
Есть вот такой код
Он в бесконечном цикле проверяет нажата ли кнопка остановки проекта в ЗП, и когда её нажимаешь онвыбрасывает эксепшн. Если этот код запустить просто в c# сниппете все нормально работает. ПРоект останавливается и всё гуд.
И вот в общем коде я сделал вот такой асинхронный метод
И в c# сниппете его вызвал
В итоге у меня вместе с сниппетом работает асинхронный метод который постоянно проверяет не остановлен ли проект.
Так вот когда происходит остановка проекта, асинхронный метод выбрасывает эксепшн как и положено, только вместе с проектом крашится вся зенка и перезапускается. Вопрос) Что не так делаю?)
Есть вот такой код
C#:
while (true)
{
project.SendInfoToLog("Работаем ОБЩИЙ КОД", true);
if (((ZennoLab.InterfacesLibrary.ProjectModel.Collections.IContextExt)project.Context).IsInterrupted)
{
project.SendErrorToLog("Остановили", true);
throw new Exception();
}
Thread.Sleep(2000);
}
И вот в общем коде я сделал вот такой асинхронный метод
C#:
async public void CheckStopProjectAsync()
{
await Task.Run(() =>
{
while (true)
{
project.SendInfoToLog("Работаем ОБЩИЙ КОД", true);
if (((ZennoLab.InterfacesLibrary.ProjectModel.Collections.IContextExt)project.Context).IsInterrupted)
{
project.SendErrorToLog("Остановили", true);
throw new Exception();
}
Thread.Sleep(2000);
}
});
C#:
CommonCode comcode = new CommonCode(instance,project);
comcode.CheckStopProjectAsync();
while (true)
{
project.SendInfoToLog("Имитация деятельности...", true);
Thread.Sleep(2000);
}
Так вот когда происходит остановка проекта, асинхронный метод выбрасывает эксепшн как и положено, только вместе с проектом крашится вся зенка и перезапускается. Вопрос) Что не так делаю?)