The default application closure code (Environment.Exit(), Application.Shutdown) will execute your finally blocks. The only one that explicitly won’t is Environment.FailFast(). Which isn’t called by .net unless something cataclysmic happened (usually in native code).