我有一个VB6应用程序通过调用.NET DLL调出一个表单,但问题是当选择VB6应用程序中首次选择菜单项时,此表单需要大约5秒钟。我怎样才能加快速度呢?
它第一次只是缓慢,此后它处于可接受的速度,就像它是原生的VB6形式一样。
我认为一种可能的解决方案是在VB6应用程序的启动画面中从.NET DLL加载Form但是看不见或以某种方式不显示它,然后当选择菜单项时我会做到显示或可见。
我有什么选择?
答案 0 :(得分:0)
我猜你必须加载.Net框架。您可以在.Net dll中添加一个虚拟方法,它实际上没有做任何事情,然后在启动画面中调用它,这样就可以加载所有内容了。
答案 1 :(得分:0)
我不知道究竟是什么问题,但我建议首先使用方法分析更详细地研究问题,看看哪种方法花了这么多时间。
但我的猜测是VB6应用程序需要将各种.NET Dlls运行时加载到内存中...这需要花费所有时间,你可以通过在程序启动时加载所有Dll来实现 - 我认为任何调用.NET函数将导致dll加载,所以你只需在表单中添加一个简单的方法,实际上什么也不做,在启动画面期间调用它,它应该有帮助..
但同样,这只是一个有根据的猜测,调查.. 使用sysinternals查看正在加载的DLLS ..
答案 2 :(得分:0)
你可以做几件小事,改变框架版本> fx3.5,减小程序集的大小,减少.net dll在程序集上调用和运行NGEN的调用次数。