Подтвердить что ты не робот

Как убить Thread при выходе?

Для запуска потока используется кнопка в родительской форме. Если родительская форма закрыта в среде разработки, поток продолжает работать в фоновом режиме, предотвращая редактирование исходного кода на 64-битной платформе Windows 7. Поток должен быть убит Menu > Debug > Stop Debugging. Каков надлежащий способ программного уничтожения потока при закрытии родительской формы?

private void buttonW_Click(object sender, EventArgs e)
{
    Thread t = new Thread(Main.MyThread);
    t.Start();
}

private static void MyThread()
{
    ...
}
4b9b3361

Ответ 1

Если вы хотите, чтобы приложение завершило работу с завершением основного потока, вы можете просто создать новый поток в фоновом потоке:

Thread t = new Thread(Main.MyThread);
t.IsBackground = true;
t.Start();

В основном процесс завершится, когда все потоки переднего плана выйдут.

Обратите внимание, что это может быть плохая новость, если фоновый поток записывает файл, когда форма закрыта, или что-то подобное...