对于多线程应用程序来说,如果直接点击右上角“关闭”按钮,或者使用“this.close()”来退出程序的话, 此时若某个子线程依然在处理数据,则虽然主程序窗口会关闭,但程序的进程并未退出,这就使得我们还要在“资源管理器”中找到该进程并强行关闭。

当然,对于有的程序来说,这种情况无所谓,主窗口关闭后,还未运行完毕的子线程继续运行,所有子线程都运行关闭后,程序的进程自动会关闭,这样还可以避免丢失子线程中正在处理的数据。

但是,有的时候,我们想要立即强行退出所有的线程,这时,可以在this.close()前加一句:

System.Diagnostics.Process.GetCurrentProcess().Kill();


请注意:使用以上方法前请先确认子线程中正在处理的数据的丢失是你可以承受的!