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

Уничтожение потока при завершении процесса

05.06.2023, 10:39. Показов 925. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Есть вечный цикл, в отдельном потоке, при завершении процесса, к примеру через диспетчер задач, поток продолжает работать. Подскажите, как быть в этой ситуации?
Если я буду использовать глобальную переменную для управления циклом while, при уничтожении процесса, данный вариант убьет поток при попытки чтения переменной или нет?
Или проверять в потоке работу процесса?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.06.2023, 10:39
Ответы с готовыми решениями:

Уничтожение процесса при закрытии программы
Здравствуйте, форумчане. При закрытие windows формы(на крастик) сама форма закрывается, а вот процесс приходится удалять вручную. Какой...

Корректное удаление файла при завершении процесса
Здравствуйте. Приложение при своём старте создают файл а при завершении этот файл будет удаляться. Конечно можно подписаться на событие...

Как при завершении главного потока прерывать фоновые потоки?
При завершении главного потока фоновые прерываются. Как сделать?

8
1167 / 885 / 517
Регистрация: 09.04.2014
Сообщений: 2,099
05.06.2023, 11:24
Лучший ответ Сообщение было отмечено macced как решение

Решение

установите свойство потока IsBackground на true и он сам завершится при закрытиии приложения
1
 Аватар для zhunshun
767 / 495 / 216
Регистрация: 05.04.2015
Сообщений: 2,075
05.06.2023, 13:26
macced, просто пойти наухатся
0
21 / 17 / 5
Регистрация: 05.09.2020
Сообщений: 167
05.06.2023, 14:45  [ТС]

Не по теме:

zhunshun, если бы это помогло...


nedel, Спасибо! А всё-таки, что будет по описанной схеме, если использовать глобальную переменную? Может владеете информацией?
0
Эксперт .NET
 Аватар для Usaga
14299 / 9384 / 1353
Регистрация: 21.01.2016
Сообщений: 35,380
05.06.2023, 15:03
macced, ты что-то перепутал. Уничтожение процесса высвобождает все ресурсы приложения и останавливает все его потоки. Я хз что у тебя там продолжает работать после остановки процесса.
0
 Аватар для zhunshun
767 / 495 / 216
Регистрация: 05.04.2015
Сообщений: 2,075
05.06.2023, 17:51
macced, Ну дак в процессе надо выйти а вы что не знаете, а набухатся что бы забить на все
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
05.06.2023, 19:54
Почитайте про cancelationtoken, это общепринятый подход
0
21 / 17 / 5
Регистрация: 05.09.2020
Сообщений: 167
06.06.2023, 08:50  [ТС]
Usaga, я тоже так думал, пока не запустил второй раз программу и не словил ошибку о занятом файле.
Foreground Thread in C#:
Foreground threads are those threads that keep running even after the main application exits or quits. That means if the Main thread leaves the application, then still the foreground threads are running to complete their assigned task. So, the foreground threads in C# do not care whether the main thread is alive or not, it completes only when it finishes its assigned work. That means the life of a foreground thread in C# does not depend upon the main thread. The foreground thread has the ability to prevent the current application from terminating. The CLR will not shut down the application until all the Foreground Threads have finished their assigned work. The main thread is a foreground thread.
1
Эксперт .NET
 Аватар для Usaga
14299 / 9384 / 1353
Регистрация: 21.01.2016
Сообщений: 35,380
06.06.2023, 10:22
macced, в этой цитате ни слова о том, что поток продолжает работать после завершения процесса. Наоборот: процесс не завершится пока foreground thread не закончит работу, даже когда main thread сдох. Это сильно не тоже самое, о чём ты говорил в своём первом посте.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.06.2023, 10:22
Помогаю со студенческими работами здесь

Уничтожение потока
перешел на C# с delphi, там есть замечательная функция по завершению потока "terminate" как реализованы потоки в C#? вот например я...

Thread. Запуск потока и уничтожение. C#
есть обработчик Thread myThread = new Thread(new ParameterizedThreadStart(myThreadProc)); public partial class Form1 : Form { ...

Уведомление о завершении потока
Надоело велосипедить, пора разобраться (хотя с виду вроде все просто должно быть...) Собственно проблема: public class Custom { ...

Вызов события при завершении процесса
есть некое приложение wpf. главное окно подписано на событие Windows_closing, в нем находится важная логика, которая должна обязательно...

Деструктор не срабатывает при завершении процесса
У меня есть дескриптор формы, который выполняет определенные действия. Но он не срабатывает при завершении процесса. Как сделать, чтобы...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru