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

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

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

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

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

textual
Листинг программы
private bool WriteReports = true;
private Thread ReportThread = null;
 
public void Start()
{
    Thread reportThread = new Thread(LoopForever);
    reportThread.Start();
    ReportThread = reportThread;
}
 
public void Stop()
{
    WriteReports = false;
    ReportThread.Join();
}
 
private void LoopForever()
{
    while (WriteReports) { ... }
}

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


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

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

11   голосов , оценка 3.909 из 5
Похожие ответы