【问题标题】:.NET assemblies loading.NET 程序集加载
【发布时间】:2012-10-15 21:16:20
【问题描述】:

我想通过在初始屏幕后面加载我的应用程序逻辑程序集来制作 WPF 应用程序,例如带有进度条的 NetBeans IDE。我知道我的应用程序很小并且没有任何意义,但是如果可以在 .NET 中完成,我想做这样的事情

【问题讨论】:

  • 您为什么要让您的应用程序让您的用户感到厌烦?如果您的应用程序需要 30 秒才能加载,那么启动屏幕是合适的。但是如果你的应用程序可以立即启动,那么什么时候可以任意延迟呢?这是非常糟糕的用户体验。也就是说,你试过谷歌搜索吗?
  • 这个问题对我来说主要是教育性的,而不是所需的功能。此外,我想我解决了它,我得到了一个带有进度条的闪屏。所以我可以看到我的应用程序逻辑程序集在启动时加载到应用程序中。是的,它只需要不到半秒的时间。在昨天之前,我什至无法想象该怎么做。而且我认为我将启动画面保留在我的应用程序中,因为我认为它使我的用户体验更好

标签: c# .net wpf assemblies


【解决方案1】:

看看http://msdn.microsoft.com/en-us/library/cc656886.aspx

这确实允许 .NET 运行时在加载程序集时显示静态启动屏幕。

【讨论】:

    【解决方案2】:

    是的,我同意“fsimonazzi”的想法。但是,如果您认为需要在加载前启动屏幕时同步执行很多长流程以显示流程进度和更酷的东西,您可以参考以下文章:Splash Screen in WPF using custom application start-up class

    【讨论】:

      【解决方案3】:

      为了显示程序集加载进度信息,我们首先确定哪些程序集尚未加载。因此,我们需要知道将加载到 AppDomain 的程序集的完整列表(来自引用的程序集),并将它们与已加载的程序集进行比较。

      AppDomain.CurrentDomain.GetAssemblies()
      

      我们可以强制加载错过的程序集并显示进度信息。

      foreach (AssemblyName assembly in assembliesToLoad)
      {
          ShowAssemblyLoadingInformation(assembly);
      
          AppDomain.CurrentDomain.Load(assembly);
      
          ReportProgress();
      }
      

      【讨论】:

        猜你喜欢
        • 2012-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-14
        • 2017-04-15
        • 1970-01-01
        相关资源
        最近更新 更多