2012-04-25 4 views
2

Я создал форму, которая запускает несколько фоновых потоков. Я добавил еще один класс, который обрабатывает исключения и ошибки, если таковые имеются. Когда код запускается, если возникает ошибка, которая должна заставить приложение закрыть, могу ли я использовать только Application.Exit()? Убьет ли это и фоновые потоки?Does Application.Exit() убивает фоновые потоки?

+1

http://stackoverflow.com/questions/3689564/threads-processes-and-application-exit – zimdanen

+0

Вы хотите убить фоновые потоки или нет? – Servy

+0

Кроме того, почему вы спрашиваете нас? Почему бы просто не запустить его и не увидеть сами. – Servy

ответ

5

Нет, не будет. Application.Exit() просто заставляет насос сообщений Windows отправлять сообщение Quit, которое завершит основной поток вашего приложения. Тем не менее, сам процесс будет продолжать работать до тех пор, пока не будут завершены фоновые потоки.

Обновление: как указатели правильно указали, если свойство IsBackground вашего потока установлено в True, завершение основного потока через Application.Exit() завершает процесс.

+3

Другие потоки переднего плана будут препятствовать завершению процесса, а потоки фона - нет. – Servy

+0

Вы уверены? Я думал, что * фоновые * потоки (то есть те, у которых есть 'IsBackground == true', не препятствуют завершению приложения и прекращают принудительное завершение при выключении. – CodesInChaos

+0

Спасибо, поэтому не нужно беспокоиться, когда я использую Application.Exit все фоновые потоки будут terminate – Mohamed

0

Нет. Прекращение резьбы является совместным.

Смежные вопросы