Нужно знать о следующем, чтобы сказать «Я знаю JavaScript»:
Application.Exit
на самом деле просто очень осторожно запрашивает цикл сообщений.
Если вы хотите, чтобы ваше приложение закрылось, лучший способ - аккуратно выйти из Main
и аккуратно закройте все дополнительные нефоновые потоки.
Если вы хотите быть жестоким ... Environment.Exit
или Environment.FailFast
? примечание это сурово - примерно то же самое, что убить свой собственный процесс
.
Если ваше приложение не завершается корректно при вызове Application.Exit
] есть (очевидно) что-то, что ему мешает. Это может быть что угодно, от параметра формы e.Cancel = true
в событии FormClosing
до потока, который не является фоновым потоком, который все еще выполняется. Я бы посоветовал вам тщательно изучить, что именно поддерживает ваш процесс, и закрыть его в хорошей манере. Это также должно сделать ваше приложение закрытым.
Обычно в приложении winforms
Я использую
if (System.Windows.Forms.Application.MessageLoop)
{
// Use this since we are a WinForms app
System.Windows.Forms.Application.Exit();
}
else
{
// Use this since we are a console app
System.Environment.Exit(1);
}
из http://geekswithblogs.net/mtreadwell/archive/2004/06/06/6123.aspx