首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从网络驱动器启动的c# .net4应用程序加载时间较长

从网络驱动器启动的c# .net4应用程序加载时间较长
EN

Stack Overflow用户
提问于 2011-03-04 09:39:37
回答 5查看 1.4K关注 0票数 2

让我更好地解释一下我的场景。我想从网络驱动器启动.exe。我注意到,如果你查看Win XP任务管理器,一个只有一个组件(进度条)的小型.net 4表单需要大约20mb的内存。因此,一旦加载了启动窗体,它将占用任务栏中大约20mb的内存。

因此,如果.exe是从网络驱动器启动的,则客户机必须等到将整个表单加载到内存中后才能显示出来。这大约需要2-3分钟。所以它必须等待20mb的内存加载。从网络驱动器启动.exe时,立即显示闪屏的最佳方法是什么?比方说,而不是等待20MB完全下载,有没有可能显示闪屏时,只有不到1mb的下载到客户端内存?你能就如何做到这一点提供一些建议吗?

我已经通过查看客户机上的任务管理器检查了这一点,直到.exe达到大约20MB,然后显示启动表单。然后它等待,直到.exe达到大约40MB才能显示主表单。我希望闪屏显示在不到两秒钟,当exe是从网络驱动器启动,以便用户知道exe将在大约2-3分钟内完成加载。那么如何实现这一点呢?

顺便说一句,加载需要很长时间,因为客户端计算机位于异地,并且有一个VPN将这些计算机连接到中心文件服务器。这就是为什么加载需要一段时间,因为上传链接最多为1Mb。但是,一旦.exe完成加载,就不会出现速度缓慢的情况。最好的方法是拥有终端服务或citrix。但这不是目前的选择。或者在客户机上安装每个.exe,但我不希望走这条路。

EN

回答 5

Stack Overflow用户

发布于 2011-03-04 12:35:56

看一看ClickOnce部署。潜在地,它将允许您保留单个网络副本以便于部署,但将节省客户端下载应用程序的时间,除非应用程序已更新。

http://msdn.microsoft.com/en-us/library/t71a733d

票数 1
EN

Stack Overflow用户

发布于 2011-03-04 09:53:20

您可以考虑构建第二个应用程序,该应用程序只做以下工作:

  1. 显示闪屏
  2. 启动一个新的Windows进程,指向远程exe。

-

我认为这个问题包含了您需要的代码的近似值:

How know when a winform is loaded by Process.Start?

票数 0
EN

Stack Overflow用户

发布于 2011-03-04 14:30:57

任务管理器进程选项卡中的内存使用仅限于本地,不能从网络计算机下载!当您从网络驱动器加载应用程序时,它只下载可执行文件并在本地执行它;这就是每个操作系统总是这样做的,它不会在服务器上执行和流式传输。

我在这里有一个时事通讯发送应用程序,例如,15kb的exe,4.3mb的ram加载时使用(大的数据列表,所以这是预期的)

通过VPN从美国的服务器加载到我的本地机器(我在澳大利亚的ADSL 1,512链路上...太慢了!)它在~1-2秒内加载应用程序,我不可能在1秒内下载4.3mb……我希望:)

那么你能做些什么来解决你的问题呢?

如果可执行文件很大且包含嵌入式资源(图像、视频、列表、XML等)……你可以让它们成为外部文件,并为用户显示一个加载窗口,也许也可以在本地缓存文件,这样只需要做一次,然后启动应用程序就会很快。可以通过应用程序检查和重新下载对资源的更改

如果应用程序可执行文件很小,并且没有正在访问的外部文件/资源(在网络文件夹中或在线),那么您只需要管理一些网络问题:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5188741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档