После того, как WinForm закрывает основную форму, фоновые процессы продолжают выполняться.

искусственный интеллект

закрыть форму

Существует много способов выйти из программы WinForm на С#, например: this.Close(); Application.Exit(); Application.ExitThread(); System.Environment.Exit(0); Давайте рассмотрим его подробно. 

1.this.Close(); Просто закройте текущее окно.Если это не главное окно, программа не может быть завершена, а если есть управляемый поток (неосновной поток), она не может выйти чисто;

2.Application.Exit(); Принудительное прерывание всех сообщений и выход из всех форм, но если есть управляемый поток (не основной поток), он не может завершиться корректно;

3.Application.ExitThread(): Принудительно прерывать все сообщения в вызывающем потоке, а также сталкиваться с проблемой, что другие потоки не могут корректно выйти;

4.System.Environment.Exit(0) Это самый тщательный метод выхода.Независимо от того, какой поток принудительно завершается, программа завершается очень чисто. 

В событии FormClosed основной формы используйтеSystem.Environment.Exit(0), конец всему!

  private void frmMain_FormClosed(object sender, FormClosedEventArgs e)
        {
            if (tip != null)
            {
                tip.Dispose();
            }
            Dispose();
            System.Environment.Exit(0);
        }