如何加速从VB6 app调用的.NET组件的“冷启动”

时间:2010-06-17 08:10:58

标签: .net vb6 interop

我有一个VB6应用程序通过调用.NET DLL调出一个表单,但问题是当选择VB6应用程序中首次选择菜单项时,此表单需要大约5秒钟。我怎样才能加快速度呢?

它第一次只是缓慢,此后它处于可接受的速度,就像它是原生的VB6形式一样。

我认为一种可能的解决方案是在VB6应用程序的启动画面中从.NET DLL加载Form但是看不见或以某种方式不显示它,然后当选择菜单项时我会做到显示或可见。

我有什么选择?

3 个答案:

答案 0 :(得分:0)

我猜你必须加载.Net框架。您可以在.Net dll中添加一个虚拟方法,它实际上没有做任何事情,然后在启动画面中调用它,这样就可以加载所有内容了。

答案 1 :(得分:0)

我不知道究竟是什么问题,但我建议首先使用方法分析更详细地研究问题,看看哪种方法花了这么多时间。

但我的猜测是VB6应用程序需要将各种.NET Dlls运行时加载到内存中...这需要花费所有时间,你可以通过在程序启动时加载所有Dll来实现 - 我认为任何调用.NET函数将导致dll加载,所以你只需在表单中添加一个简单的方法,实际上什么也不做,在启动画面期间调用它,它应该有帮助..

但同样,这只是一个有根据的猜测,调查.. 使用sysinternals查看正在加载的DLLS ..

答案 2 :(得分:0)

你可以做几件小事,改变框架版本> fx3.5,减小程序集的大小,减少.net dll在程序集上调用和运行NGEN的调用次数。