Я написал на 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; } } } }
|
Спасибо за помощь.
|