Завершить поток при выключении программы - C#

Узнай цену своей работы

Формулировка задачи:

В Windows Forms по нажатии на кнопку создаю экземпляр класса который создает новый поток и выполняет в нем работу в бесконечном цикле. При выключении основной программы поток продолжает работать. Как обнаружить что основной поток уже не работает?
Листинг программы
  1. public void Start()
  2. {
  3. thread = new Thread(
  4. () =>
  5. {
  6. Initiate();
  7. LoopForever();
  8. }
  9. );
  10. thread.Start();
  11. }

Решение задачи: «Завершить поток при выключении программы»

textual
Листинг программы
  1. private bool WriteReports = true;
  2. private Thread ReportThread = null;
  3.  
  4. public void Start()
  5. {
  6.     Thread reportThread = new Thread(LoopForever);
  7.     reportThread.Start();
  8.     ReportThread = reportThread;
  9. }
  10.  
  11. public void Stop()
  12. {
  13.     WriteReports = false;
  14.     ReportThread.Join();
  15. }
  16.  
  17. private void LoopForever()
  18. {
  19.     while (WriteReports) { ... }
  20. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы