Как в проекте перехватить событие c# нажатия кнопки Стоп?

Alekseyaz

Client
Регистрация
20.11.2014
Сообщения
162
Благодарностей
30
Баллы
28
Как в проекте перехватить событие c# нажатия кнопки Стоп?
Есть снипет c#, там условно вечный цикл, надо иметь возможность закрывать проект по кнопки стоп, как сделать?
 

ebrwebrw

Client
Регистрация
20.08.2018
Сообщения
221
Благодарностей
163
Баллы
43
while(1==1){
if (((ZennoLab.InterfacesLibrary.ProjectModel.Collections.IContextExt)project.Context).IsInterrupted) return false; // Прерывание в ZP
if (Global.Variables.IsProjectMaker && !Global.Variables.IsDebugMode) return false; // Прерывание в PM
System.Threading.Thread.Sleep(1 * 1000);
}
Это?
 
  • Спасибо
Реакции: Alekseyaz

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 373
Благодарностей
3 297
Баллы
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");
 
  • Спасибо
Реакции: molotok и Alekseyaz

Alekseyaz

Client
Регистрация
20.11.2014
Сообщения
162
Благодарностей
30
Баллы
28
Спасибо работает
 

Alekseyaz

Client
Регистрация
20.11.2014
Сообщения
162
Благодарностей
30
Баллы
28
А нет ли события или делегата что бы подписаться? Вроде логично это иметь в виде события
Вечно крутиться в while не вариант
 

Valandersi

Client
Регистрация
19.01.2015
Сообщения
1 872
Благодарностей
1 118
Баллы
113
А нет ли события или делегата что бы подписаться? Вроде логично это иметь в виде события
Вечно крутиться в while не вариант
используйте цикл for, с определенным кол-вом циклов
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 373
Благодарностей
3 297
Баллы
113
А нет ли события или делегата что бы подписаться? Вроде логично это иметь в виде события
Вечно крутиться в while не вариант
Напишите своё событие, проверку делайте асинхронно или в отдельном потоке.
Для ожидания используйте SpinWait, он лучше подходит для частых проверок и часто используется для событий.
 

Alekseyaz

Client
Регистрация
20.11.2014
Сообщения
162
Благодарностей
30
Баллы
28
Но это же костыль, почему элементарного event нет с коробки. Кнопки стопа на форме нет, а подписаться на них нельзя)
 

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