|
7 / 7 / 1
Регистрация: 16.12.2010
Сообщений: 23
|
|
Остановка выполнения функции по нажатию клавиши18.08.2011, 23:59. Показов 5116. Ответов 2
Метки нет (Все метки)
Делаю проект на С++, WinForms, в 2005 VS. По нажатию кнопки запускается функция (из отдельного класса, вызывает и некоторые другие функции), которая производит вычисления длительное время (в основном - несколько циклов).
Требуется, чтобы по нажатию на клавишу (можно и по нажатию на кнопку на форме) функция останавливалась. Желательно - могла определить, что кнопка была нажата и грамотно выходила. Некоторое увеличение времени выполнения не критично. Как вариант - внутри циклов вставить проверку флага нажатия кнопки (и выход, естественно), моментальный отклик на нажатие тоже не столь важен. Вопрос: а как этот флаг устанавливать? Ведь, форма никак не реагирует при выполнении функции. В какую сторону вообще копать?
0
|
|
| 18.08.2011, 23:59 | |
|
Ответы с готовыми решениями:
2
Остановка потока по нажатию клавиши Остановка цикла по нажатию клавиши Остановка сервера DNS по нажатию клавиши |
|
1857 / 1363 / 429
Регистрация: 10.06.2011
Сообщений: 2,136
|
|||||||||||||||||||||
| 19.08.2011, 02:15 | |||||||||||||||||||||
|
Используй Timer.
О таймере: http://msdn.microsoft.com/ru-r... timer.aspx "форма никак не реагирует при выполнении функции". Во время работы Timer форма виснуть не будет. Xorboo, вы пишете, что у вас есть циклы. Можете поместить итерацию цикла в таймер и вести счётчик итераций. У таймера есть событие tick, выполняющая некие, описанные вами действия, через определённый интервал времени (заданный свойством Interval). Счётчик
0
|
|||||||||||||||||||||
|
623 / 467 / 57
Регистрация: 28.01.2011
Сообщений: 605
|
|
| 19.08.2011, 23:40 | |
|
Xorboo, как вариант, если возможно, чтобы функция останавливалась "неграмотно", то можно просто вычисления пустить в отдельном потоке через Thread или BackgroundWorker, а потом в случае необходимости вызвать либо Thread::Abort(), либо BackgroundWorker::CancelAsync() соответственно, для того, чтобы прихлопнуть работающий поток, где крутится эта функция.
А для более правильного вываливания из функции в принципе сойдет уже упомянутый способ с таймером.
0
|
|
| 19.08.2011, 23:40 | |
|
Помогаю со студенческими работами здесь
3
Запуск\остановка цикла по нажатию клавиши Остановка потока. Выполнение действия по нажатию клавиши Остановка Выполнения Функции
Запуск функции по нажатию клавиши Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|