Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 286

Почему не останавливается поток?

16.10.2016, 12:42. Показов 1209. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C#
1
public Thread _ParsGrups ;
C#
1
2
3
4
  void star_or_stop(DevExpress.XtraBars.BarButtonItem e, DevExpress.XtraBars.BarButtonItem a,bool b, Thread c, ThreadStart n = null)
       {
          try { e.Enabled = true; a.Enabled = false; if(b) { c = new Thread(n); c.IsBackground = true; c.Start(); } else { c.Abort(); } } catch { }
       }
Запускаю поток
C#
1
2
3
4
 private void barButtonItem5_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
       {
         star_or_stop(barButtonItem6, barButtonItem5, true,_ParsGrups, pars_grups); }
       }
Останавливаю поток

C#
1
2
3
4
 private void barButtonItem6_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
       {
         star_or_stop(barButtonItem5, barButtonItem6, false, _ParsGrups);        
       }
Поток не останавливается, в чем проблема , помогите пожалуйста!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.10.2016, 12:42
Ответы с готовыми решениями:

Не останавливается поток при закрытии формы
Маленькая программа работы с сокетами (сервер), всего в процессе 3 потока - основной и еще два созданных. Один выполняет такую функцию: ...

Почему программа не останавливается при выполнении условия?
есть два текстбокса, кнопка и таймер, вроде все ясно. Идет цикл от a до z. Когда я вписываю в второй текстбокс буква скажем d, то после...

Не останавливается поток
Добрый день ! создаю поток для слушания порта TCP. пытаюсь его остановить выставлением флага - он не останавливается. проверил -...

12
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,630
16.10.2016, 12:47
http://stackoverflow.com/quest... p-a-thread

http://programmers.stackexchan... reads-in-c
0
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 286
16.10.2016, 14:32  [ТС]
не понял (
0
 Аватар для iDReeM
64 / 68 / 18
Регистрация: 21.10.2015
Сообщений: 228
16.10.2016, 19:54
if(b) { c = new Thread(n); - в случае если b = true - Thread c инициализируется, в противном случае нет. не стопает по тому что нечего стопать.
0
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 286
16.10.2016, 19:58  [ТС]
Цитата Сообщение от iDReeM Посмотреть сообщение
if(b) { c = new Thread(n); - в случае если b = true - Thread c инициализируется, в противном случае нет. не стопает по тому что нечего стопать..
так на кнопку
C#
1
2
3
4
private void barButtonItem6_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
       {
         star_or_stop(barButtonItem5, barButtonItem6, false, _ParsGrups);        
       }
нужно остановить запущеныы поток . Выполняется команда "else "
C#
1
else { c.Abort(); }
0
 Аватар для iDReeM
64 / 68 / 18
Регистрация: 21.10.2015
Сообщений: 228
16.10.2016, 20:02
Цитата Сообщение от dimasik9281 Посмотреть сообщение
нужно остановить запущеныы поток . Выполняется команда "else "
шутка природы, в случае с else Thread не определяется, это АРГУМЕНТ... там разве стоит ref? или out?
0
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 286
16.10.2016, 20:05  [ТС]
Цитата Сообщение от iDReeM Посмотреть сообщение
шутка природы, в случае с else Thread не определяется, это АРГУМЕНТ... там разве стоит ref? или out?
Пожалуйста, скажи понятным языком.. Я только что начал изучать C#
0
 Аватар для iDReeM
64 / 68 / 18
Регистрация: 21.10.2015
Сообщений: 228
16.10.2016, 20:12
ну раз новичек попробуй так.
на будущее, если отлавливаешь исключения, имей смелость их выводить) (свои два аргумента добавишь сам: DevExpress.XtraBars.BarButtonItem e, DevExpress.XtraBars.BarButtonItem a)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 void star_or_stop(bool b, Thread c, ThreadStart n = null)
        {
            try 
            {
                c = new Thread(n);
                c.IsBackground = true;
              
                if (b) 
                { c.Start(); }
                else 
                { c.Abort(); } 
            }
            catch (System.Threading.ThreadStateException ex)
            {
                MessageBox.Show(string.Format("Ошибка: {0}", ex.Message), "Error");
            }
            catch (System.Security.SecurityException ex)
            {
                MessageBox.Show(string.Format("Ошибка: {0}", ex.Message), "Error");
            }
        }
1
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 286
16.10.2016, 21:49  [ТС]
Цитата Сообщение от iDReeM Посмотреть сообщение
ну раз новичек попробуй так.
на будущее, если отлавливаешь исключения, имей смелость их выводить) (свои два аргумента добавишь сам: DevExpress.XtraBars.BarButtonItem e, DevExpress.XtraBars.BarButtonItem a)
Спасибо большое пойду пробовать!

Добавлено через 1 час 34 минуты
iDReeM,
Поток продолжает свою работу
0
 Аватар для iDReeM
64 / 68 / 18
Регистрация: 21.10.2015
Сообщений: 228
17.10.2016, 00:28
Цитата Сообщение от dimasik9281 Посмотреть сообщение
iDReeM,
Поток продолжает свою работу
тогда там где Thread c в аргументах, добавь ref
0
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 286
17.10.2016, 00:38  [ТС]
Цитата Сообщение от iDReeM Посмотреть сообщение
тогда там где Thread c в аргументах, добавь ref
я начинающий (
мне все сложно (
Пожалуйста, сделай
0
 Аватар для iDReeM
64 / 68 / 18
Регистрация: 21.10.2015
Сообщений: 228
17.10.2016, 00:44
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void star_or_stop(bool b, ref /*  сложно??*/Thread c, ThreadStart n = null)
        {
            try 
            {
                c = new Thread(n);
                c.IsBackground = true;
              
                if (b) 
                { c.Start(); }
                else 
                { c.Abort(); } 
            }
            catch (System.Threading.ThreadStateException ex)
            {
                MessageBox.Show(string.Format("Ошибка: {0}", ex.Message), "Error");
            }
            catch (System.Security.SecurityException ex)
            {
                MessageBox.Show(string.Format("Ошибка: {0}", ex.Message), "Error");
            }
        }
1
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 286
17.10.2016, 20:59  [ТС]
Вопрос решен
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.10.2016, 20:59
Помогаю со студенческими работами здесь

Основной поток останавливается
При столкновении с врагом жизнь должна отниматься, впрочем отнимается но каждый кадр при столкновении, для решения проблемы сделал новый...

Handler, поток не останавливается
Добрый вечер. Не могу остановить таймер, при переходе на другую Activity. Возможно ли это вообще? Code: mport...

Когда останавливается поток?
Так..... Значицца запускаю второй поток из главного (из функции мэйн). Что сразу заметил. Переопределять run() вообще не обязательно в...

Поток останавливается не сигнализируя об ошибках.
void __fastcall TMyThread::_PrintLog( void ) { MainForm->AddLog( StrLog, LOG_FLOT ); } ...

Поток останавливается раньше времени
Поток останавливается раньше времени. Как решить данную траблу? кто поможет ? :)


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru