2012-08-01 85 views

回答

2

如果其他线程具有Thread.IsBackground设置为true,他们将立即退出。否则,应用程序将继续运行(如果它是WinForms或WPF应用程序,则不可见)。

如果其他线程拥有非托管资源,这些通常会被关闭/由操作系统发布的时候退出进程(文件句柄等可能有例外的情况,我不熟悉)。当您检测到应用程序正在退出时,仍然最好手动释放这些资源。

+0

谢谢克里斯! – 2012-08-01 14:17:19

+0

'当您检测到应用程序正在退出的事实时,仍然最好手动释放这些资源。'为什么?如果操作系统无论如何要这样做,为什么重复努力,除非它是绝对必要的(并且经常不能有效/正确地做到这一点)。当进程退出 – 2012-08-01 14:38:09

+0

@MartinJames因为,这些非托管资源将要由OS上***极端偏见清理***。你在写作中的文件可以在不一致的状态,网络流可以不通知对方被关闭,等你通常想知道什么时候该过程已经结束,并试图保存以有意义的方式端子状态。 – 2012-08-01 14:53:44

相关问题