现在,我面临一个非常奇怪的问题。我们有一个 .net 解决方案。这是一个比较大的解决方案,包含很多项目。在一个负责 GUI 的项目中,我们在客户端应用程序启动之前使用 VB.net 创建了许多 winforms(标签、按钮、列表框等)。最近,客户问我们为什么我们的客户端应用程序需要更多时间来初始化。
当我深入研究我们的代码时,我发现只有一个“Me.BtnMenu = New System.Windows.Forms.Button”子句需要大约 10 毫秒才能完成。实际上,在初始化客户端 GUI 之前,我们有数百个 Winform 需要构建。最近,我们将解决方案从 vs2008 迁移到 vs2010。对比一下,在vs2008版本中,“新建System.Windows.Forms.Button”的开销约为0~1ms,而在vs2010版本中,“新建System.Windows.Forms.Button”的开销约为10~ 20ms,最终延迟了 GUI 的初始化。更有趣的是,其他控件如 GroupBox、Panel、RadioButton 等在两个版本中都不会花费太多时间,只有按钮 deos。
有人对此有任何想法吗?它让我困惑了好几个星期,但我仍然无法理解。