Завершить поток - C#
Формулировка задачи:
Здравствуйте. подскажите, как правильно остановить и завершить поток.
В приложении WPF в одной кнопке выполняется следующий код
Нужно чтобы после выполнения кода поток завершался и чтобы была другая кнопка, при нажатии на кнопку поток принудительно останавливался.
Листинг программы
- private void Go_Click(object sender, RoutedEventArgs e)
- {
- (new Thread(delegate ()
- {
- //код
- })).Start();
- }
Решение задачи: «Завершить поток»
textual
Листинг программы
- /// <summary>
- /// Поле для потока периодических запросов статуса пользовательской задачи
- /// </summary>
- private Thread threadTaskCircler;
- /// <summary>
- /// Метод изменения флага периодического опроса пользовательской задачи
- /// </summary>
- /// <param name="circler">значение флага опроса</param>
- private void TaskCirclerModed(bool circler)
- {
- if (!circler) { //если произошел сброс флага..
- if (threadTaskCircler != null) //..если поток существует..
- if (threadTaskCircler.IsAlive) //....если поток жив..
- threadTaskCircler.Abort(); //......прерывание потока
- }
- else { //если произошла установка флага..
- if (threadTaskCircler != null && threadTaskCircler.IsAlive) //..если поток существует и выполняется..
- return; //....прерывание работы метода
- threadTaskCircler = new Thread(TaskProcessing); //..создание потока периодического опроса
- threadTaskCircler.Name = "Controller_Circler"; //..установка ему имени
- threadTaskCircler.IsBackground = true; //..завершение потока при закрытии программы
- threadTaskCircler.Start(); //..запуск потока
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д