Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 16.05.2015
Сообщений: 8

Не завершается поток

16.01.2016, 12:17. Показов 1094. Ответов 3

Студворк — интернет-сервис помощи студентам
Здравствуйте, такая у меня проблема проблема. Есть метод:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
static void Function()
        {
            do
            {
                double n = 0;
                for ( double i = double.MaxValue / 2; i < double.MaxValue; i++ )
                {
                    n = Math.Pow(i / (i / 2 * Math.Sqrt(9)), n);
                    if ( Func == false )
                        break;
                }
 
            }while ( Func != false ) ;
        }
и поле:
C#
1
static bool Func;
Далее запускаю этот метод в новом потоке
C#
1
2
3
Thread MyThread = new Thread(new ThreadStart(Function));
Func = true;
MyThread.Start();
Далее пытаюсь завершить поток
C#
1
2
3
Func = false;
MyThread.Abort();
MyThread.Join();
Но поток не завершается. Его свойство ThreadState так и остается равным Aborted и не становится Stopped. Подскажите, пожалуйста, в чем причина.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.01.2016, 12:17
Ответы с готовыми решениями:

Почему поток не завершается через myThread.Abort?
Вопрос в следующем, создаю поток: myThread = new Thread(func); myThread.Start(); в func содержится цикл while (true) { .......

Вызывающий поток не может получить доступ к объекту, так как его владельцем является другой поток
Есть форма MainWindo, есть класс AB. В форме единая точка доступа к элементам формы. public static MainWindow Forma = null; ...

Текущий поток должен быть задан как поток однопоточного контейнера (STA), чтобы вызовы OLE стали возможны
пишет:Текущий поток должен быть задан как поток однопоточного контейнера (STA), чтобы вызовы OLE стали возможны. Проверьте, что ваша...

3
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
16.01.2016, 12:43
Цитата Сообщение от sweft1 Посмотреть сообщение
Его свойство ThreadState так и остается равным Aborted и не становится Stopped.
Тут почитайте.
И использование Abort() для потока-плохая практика. Поток должен завершиться в штатном режиме. Более того, у вас это вообще ни к чему, вы же создали переменную для завершения цикла в методе-цели потока. Вот ее и используйте.
1
0 / 0 / 0
Регистрация: 16.05.2015
Сообщений: 8
16.01.2016, 13:01  [ТС]
Спасибо, убрал Abort(), все заработало как нужно. Теперь новый вопрос: как снова запустить поток, который находится в состоянии Stopped?
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
16.01.2016, 14:32
Цитата Сообщение от sweft1 Посмотреть сообщение
Спасибо, убрал Abort(), все заработало как нужно. Теперь новый вопрос: как снова запустить поток, который находится в состоянии Stopped?
Никак. Остановленный поток нельзя перезапустить. Только создавать новый.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.01.2016, 14:32
Помогаю со студенческими работами здесь

Создать поток сжатия GZipStream, и перенести данные из открытого файла в поток GZipStream
Здравствуйте. Объясните мне пожалуйста следующую вещь: Необходимо открыть файл для чтения. Создать поток сжатия GZipStream, и перенести...

Приложение сразу завершается
Здравствуйте! Подскажите, почему приложение отрабатывается и сразу завершается:using System; using System.Collections.Generic; using...

GetMailslotInfo завершается с ошибкой
Здравствуйте! Продолжаю осваивать работу с почтовыми ящиками в Windows. Не знаю, может быть стоило выбрать именованный канал для передачи...

Не завершается поток
procedure TPotok.Execute; begin for i:=0 to Form1.sMemo1.Lines.Count-1 do begin repeat try ...

Не завершается поток на клиенте
Всем доброго времени суток, возникла проблема: &quot;поток заканчивает работу в непонятном месте&quot; Есть сервер TCP, своего окна не имеет,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
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, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru