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

  • Автор темы Автор темы Alekseyaz
  • Дата начала Дата начала

Alekseyaz

Client
Регистрация
20.11.2014
Сообщения
162
Реакции
30
Баллы
28
Как в проекте перехватить событие c# нажатия кнопки Стоп?
Есть снипет c#, там условно вечный цикл, надо иметь возможность закрывать проект по кнопки стоп, как сделать?
 
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
Тут:
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
Спасибо работает
 
А нет ли события или делегата что бы подписаться? Вроде логично это иметь в виде события
Вечно крутиться в while не вариант
 
А нет ли события или делегата что бы подписаться? Вроде логично это иметь в виде события
Вечно крутиться в while не вариант
используйте цикл for, с определенным кол-вом циклов
 
А нет ли события или делегата что бы подписаться? Вроде логично это иметь в виде события
Вечно крутиться в while не вариант
Напишите своё событие, проверку делайте асинхронно или в отдельном потоке.
Для ожидания используйте SpinWait, он лучше подходит для частых проверок и часто используется для событий.
 
Но это же костыль, почему элементарного event нет с коробки. Кнопки стопа на форме нет, а подписаться на них нельзя)
 

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