【发布时间】:2011-11-07 08:37:19
【问题描述】:
我正在编写 WinForms 应用程序,到目前为止它包含 37 个表单。这是因为我的项目的需要。
我的问题是:
- C# 中创建的表单数量是否有限制?
- 它对应用程序性能有影响吗?
感谢您的帮助。
【问题讨论】:
标签: c# winforms performance
我正在编写 WinForms 应用程序,到目前为止它包含 37 个表单。这是因为我的项目的需要。
我的问题是:
感谢您的帮助。
【问题讨论】:
标签: c# winforms performance
我的项目中有太多的 winforms(大约 50 个)。在 2 或 3 次调试构建和运行后,我经常遇到以下错误。
Error 1 Unexpected error writing metadata to file'E:\Repository\Project\JewelSoft\PresentationTier\obj\Release\PresentationTier.exe' -- '没有足够的存储空间来完成此操作。 ' 表示层
因此,请务必小心并始终在需要的地方实施 GC。
更新 1: 尽管有 GC.Collect() 之类的方法,但您通常不需要实现它,除非您遇到代码突然结束或切换线程的情况。诸如处理关闭后不需要的表单并避免重复声明对象之类的事情会有所帮助。
更新 2: 要了解更多何时在哪里编写 GC.Collect,请参考以下链接:
关于表单处理,在表单关闭方法上它会自动被处理,但是如果你有一个其他表单的变量,那么建议在form1_disposed事件中写form1 = null;
【讨论】:
据我所知,项目中的其他模块或类可以不受任何限制地创建您需要的任意数量。
问候。
【讨论】:
在内存用完之前,表单的数量没有限制。但它会影响系统和应用程序的性能。
【讨论】:
在 C# 中创建表单有限制吗?
AFAIK .NET 框架没有这样的限制。显然,您创建并保存在内存中的表单越多,您将拥有的内存就越少,直到您用完为止。您拥有的内存越少可能会导致性能下降。
另一方面,如果您只在内存中保留当前表单,而让 GC 通过让其他实例超出范围来处理其他表单,则不会出现此类问题。
【讨论】: