我在客户端只是安装了一个外壳程序(一个放置动态菜单的MDI主窗体),用户每次登陆根据用户的权限构造属于用户的菜单(动态菜单)。
所有的业务逻辑窗体都放在服务器上(我把他称为组件服务器),菜单的Clicked事件的代码为:
System.Reflection.Assembly app = System.Reflection.Assembly.LoadFrom(DellPath);
Type frmType = app.GetType(WindowName);
object[] ObjectParameters = null;
Form frmMain  = (Form)frmObj   ;
frmMain.MdiParent = ParentFormW_Main ;
frmMain.Location = new Point(0,0);
frmMain.Show();
------------------------------------------------------
注:我的DellPath为一个远程组件的路径如:http//192.168.0.1/Deal/Print.Dll,并且每个DLL的大小在1M以内问题:每次启动应用程序后点击菜单,窗体总是调用的很慢,当再次点击菜单窗体的调用速度很快。
怎么才能优化一下,第一次调用窗体的速度也快些...

解决方案 »

  1.   

    主要原因可能是下载该DLL比较浪费时间.在本地保留一份副本,然后通过一个很小的文件来设置副本是否有变动.如果没有变动直接在加载本地的文件.
      

  2.   

    lidong6(立冬) :
    System.Reflection.Assembly.LoadFrom(DellPath)本身就会自动实现!
      

  3.   

    你可以在不同的地方输出时间的办法来确定哪几行代码执行的时间比较慢.如果是反射慢的话,你可以把反射结果保存到当前目录下,DLL文件有变化时再重新反射,没有变化则直接使用保存好的反射结果.