有没有办法在关闭并再次打开时不重新创建表单的实例?
Posted
技术标签:
【中文标题】有没有办法在关闭并再次打开时不重新创建表单的实例?【英文标题】:Is there any way to not re-create the instance of a form when is closed and opened again? 【发布时间】:2016-10-18 19:44:40 【问题描述】:我正在调试一个具有三个表单的简单应用程序,我发现当我关闭一个表单,然后我再次打开(单击显示相应表单的按钮)时,会创建代表表单的对象再次。 我认为这会不必要地消耗资源。
那么,如何在程序执行时只创建所有表单的一个实例?
【问题讨论】:
【参考方案1】:您所描述的内容听起来像是单例模式。
private MyForm()
private static MyForm _instance;
public static MyForm Instance => _instance ?? (_instance = new MyForm());
有可能,因为构造器是私有的,所以设计器开始搞乱。此外,您不能再处理/关闭表单了。这迫使您使表单不可见而不是摆脱它们
【讨论】:
【参考方案2】:您应该能够连接到关闭事件,您所需要的只是将要关闭的表单设置为隐藏而不是实际关闭它。然后表单将通过 Singleton 提供,它负责表单本身的初始化和呈现。
请注意,您可能仍希望释放您隐藏的表单使用的任何其他资源,例如文件和/或连接。
附带说明,请记住,在不使用表单时将它们保存在内存中会增加应用程序的内存占用。
【讨论】:
是的,根据需求仔细评估是一个重点。谢谢。以上是关于有没有办法在关闭并再次打开时不重新创建表单的实例?的主要内容,如果未能解决你的问题,请参考以下文章
如何创建一个倒数计时器,当屏幕关闭时停止并“等待”,重新打开时恢复。安卓