Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прерывание работы приложения по нажатию на клавишу 
:(
    Опции темы
fleek
Дата 31.10.2010, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 30.10.2010

Репутация: нет
Всего: нет



Я написал на C# консольную программку, выполняющую расчет динамики одной конструкции. Расчет длится около суток и мне бы хотелось дополнить программу кодом, который бы позволял остановить выполнение главного метода нажатием на клавишу esc. Нажатие на клавишу должно не просто закрыть приложение, а запустить другой метод, сохраняющий результат для последующего продолжения расчета. Можно ли это сделать в рамках консольного приложения? Если да то как?

Второй вопрос в принципе связан с первым, но но вызван более любопытством, чем необходимостью решить конкретную задачу. Есть тестовое оконное приложение с двумя кнопками. Кнопка "start" запускает цикл, кнопка "stop" прерывает его. Как правильно написать обработчик событий для кнопки "stop", чтобы нажатие на неё прерывало работу цикла, запущенного с кнопки "start"? В настоящее время кнопка "stop" откликается на нажатие только после того как закончится выполнение цикла, запущенного с кнопки "start".
Код

private void ButtonClick(object sender, EventArgs e)//общий обработчик для события Click для кнопок start и stop
{
   if (((Button)sender).Text == "start")
   {
      Label1.Text = "Нажата кнопка start";//метка отображающая факт нажатия на кнопку
      for (int i = 0; i < 100000; i++)//цикл, имитирующий длительную работу некоторого метода
      {
         Label2.Text = Convert.ToString(i);//по идее должны бежать цифры от 0 до 99999, но на самом деле через пару секунд сразу появляется 99999 
         if (((Button)sender).Text == "stop")//если нажата кнопка stop то цикл прерывается
         {
            Label1.Text = "Нажата кнопка pause";
            break;
         }
      }
   }
}


Спасибо за помощь.

PM MAIL   Вверх
Экскалупатор
Дата 31.10.2010, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



fleek, запускай выполнение твоего расчета в отдельном потоке, а основное приложение ставь ждать нажатие кнопки(любой), при нажатии определяй какая была нажата и выполняй те действия которые тебе нужны.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0396 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.