0

当 .NET 进程主线程完成时,其他当前正在执行的线程会发生什么情况?如果他们分配了必须在停止之前处置的非托管资源怎么办?

4

1 回答 1

2

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

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

于 2012-08-01T14:12:07.167 回答