在winforms应用程序中失败

时间:2011-04-10 18:24:31

标签: c# winforms

在.NET应用程序中,如果我遇到致命异常(例如OOM),我就会失败。我通过在我的applicationthreadexception事件处理程序中调用Environment.Exit()调用finally块(它可能是Environment.Failfast()调用finally块,我使用其中的任何一个)来执行此操作。

这是快速失败的正确方法吗?

由于

1 个答案:

答案 0 :(得分:3)

Environment.Failfast()不运行终结器,它在Windows日志中放置一个事件并生成一个minidump。您不希望使用minidump填充客户端的计算机,它们不是小文件。没有人会看着他们。

在OOM条件下防止终结器不是很有用,终结器不会分配更多内存。使用Environment.Exit()。或者只是没有抓到任何东西,OOM很难被捕获,因为它可以被抛出任何地方。如果你想付出努力,那么修复你的代码,这样它就不会占用太多内存。