Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
2 / 0 / 0
Регистрация: 23.07.2017
Сообщений: 44
1

Как остановить выполнение метода Void?

07.09.2018, 23:27. Показов 4282. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!

Задача такая. Есть у меня метод который зациклено выполняет определенные действия. И суть в том что по нажатию на кнопку (на клавиатуре) цикл должен прекращается.

Логика моего кода выглядит так:

C#
1
2
3
4
5
6
7
8
9
private void Metod()
{
for (int i = 0; i < 100000000; i++) {
// выполняет нужные дейсвия
if (label1.text == "STOP") {
break;
}
}
}
Так же есть глобальный кейхук который по нажатию на кнопку вписывает в label1 текст "STOP".

Но вот в чём проблема. После запуска программы - начинает выполнятся цикл. Если я жму на нужную клавишу... ничего не происходит. Но как только цикл окончится - текст сразу появляется и повторно запустить метод, разумеется, не получится. Но почему этот текст не появляется именно во время прохождения цикла??? Подскажите пожалуйста!

Заранее спасибо за помощь!

Добавлено через 2 минуты
Так же пробовал просто с таймером: одновременно с методом запускается так же и таймер на 1 секунду. В нём так же прописано label1.text = "STOP". Но пока не пройдёт метод - лейбла не изменится.
И таймер я запускаю до метода. Так что уже не знаю как с этим бороться
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.09.2018, 23:27
Ответы с готовыми решениями:

Как остановить выполнение потока
private void button1_Click(object sender, EventArgs e) {//старт for...

Как остановить выполнение метода
private void button4_Click(object sender, EventArgs e) { if ...

Как остановить выполнение метода для выбора значения в comboBox?
Здравствуйте! Подскажите, плиз, как сделать остановку метода и дождаться пока пользователь выберет...

Остановить и продолжить выполнение метода. Общий поток при этом должен ожидать
Всем привет! Есть метод 1, который выполняется и останавливается в процессе, затем выполняется...

1
Эксперт .NET
6452 / 4053 / 1599
Регистрация: 09.05.2015
Сообщений: 9,487
07.09.2018, 23:30 2
Лучший ответ Сообщение было отмечено Alan1 как решение

Решение

Нужно запускать метод в отдельном потоке. Ну и для остановки использовать не текст в Label'е, а переменную типа bool или токен отмены.
Так же можно воспользоваться компонентом BackgroundWorker.
1
07.09.2018, 23:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.09.2018, 23:30
Помогаю со студенческими работами здесь

Как из метода отправить переменную в другой метод и продолжить выполнение метода?
Здравствуйте, подскажите пожалуйста, как из метода отправить переменную в другой метод и продолжить...

Как остановить выполнение BackgroundWorker
здравствуйте. Не пойму как можно остановить поток. Есть две кнопки старт и стоп. private void...

Как остановить работу метода?
Подскажите как остановить работу метода? protected override void OnTick() {...

Как остановить поток, после выполнения метода?
Есть метод, который выполняется в отдельном потоке: void kks() { int ttk = 0; for(int i...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru