'正确'终止WinForms应用程序

时间:2012-05-06 01:11:30

标签: c# winforms

正确关闭申请有多重要? 也就是说,对所有一次性对象的属性调用Dispose并发出所有工作线程的信号以完成他们的工作(并等待他们这样做)。

我一直在阅读有关这些事情的不良做法,但我很少看到可能出现问题的具体例子。

问:执行以下任何或所有操作可能会出现任何问题:

  1. 不在任何一次性物品上调用Dispose。 (即使在进程终止后它是否会导致内存泄漏?)
  2. 通过调用Thread.Abort()终止线程。 (忽略它可能无能为力的事实。)
  3. 在主线程和/或工作线程尚未完成工作时,通过调用Application.Exit()Environment.Exit(0)来终止WinForms应用程序。
  4. 编辑我们假设所述应用程序设计为完全独立运行并独立于其他应用程序,也没有任何其他应用程序直接依赖它。

1 个答案:

答案 0 :(得分:2)

就泄漏或更广泛的系统问题而言,上述任何一项都不重要。

然而,更糟糕的是,糟糕的模式和习惯会以你不期望的其他方式咬你...例如,当添加额外的代码客户端或随着时间的推移进行其他调整时。