预加载组件

2024-02-05

在工作中,我们使用 DevExpress 作为用户界面。第一次打开使用 DevExpress 控件的表单时,会出现很长的暂停(在某些客户端上有时会出现 15-20 秒)。在 Visual Studio 中,我可以看到该阶段正在加载大量程序集。有没有办法在登录屏幕弹出之前在后台生成的线程上将该程序集预加载到 AppDomain 中?


另一种选择是强制 JIT 异步加载程序集,而不是手动加载。诀窍是简单地调用控件的构造函数,以便 Jit 知道它必须开始编译该特定代码路径。通常这会强制它加载所有依赖程序集。只需确保用 try catch 包围构造函数的调用即可。

如何在加载时执行此操作的示例:

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        PreJitControls();

        Application.Run(new Form1());
    }

    private static void PreJitControls()
    {           
        ThreadPool.QueueUserWorkItem((t) =>
        {
            Thread.Sleep(1000); // Or whatever reasonable amount of time
            try
            {
                AssemblyPullingControl1 c = new AssemblyPullingControl1();
            }
            catch (Exception) { }

            try
            {
                AssemblyPullingControl2 c = new AssemblyPullingControl2();
            }
            catch (Exception) { }

        });
    }
}

但是,如果这是进行预加载的更好时机,您也可以在登录表单的构造函数中执行类似的操作。只需将 PreJitControls 方法移至登录表单并从构造函数中调用它即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

预加载组件 的相关文章

  • C# 中的 Stack<> 实现

    我最近一直在实现递归目录搜索实现 并且使用堆栈来跟踪路径元素 当我使用 string Join 连接路径元素时 我发现它们被颠倒了 当我调试该方法时 我查看了堆栈 发现堆栈内部数组中的元素本身是相反的 即最近 Push 的元素位于内部数组的
  • 在 Mono 中反序列化 JSON 数据

    使用 Monodroid 时 是否有一种简单的方法可以将简单的 JSON 字符串反序列化为 NET 对象 System Json 只提供序列化 不提供反序列化 我尝试过的各种第三方库都会导致 Mono Monodroid 出现问题 谢谢 f
  • C# 中一次性对象克隆会导致内存泄漏吗?

    检查这个代码 class someclass IDisposable private Bitmap imageObject public void ImageCrop int X int Y int W int H imageObject
  • 如何修复错误:“检测到无法访问的代码”

    我有以下代码 private string GetAnswer private int CountLeapYears DateTime startDate return count String answer GetAnswer Respo
  • Android NDK 代码中的 SIGILL

    我在市场上有一个 NDK 应用程序 并获得了有关以下内容的本机崩溃报告 SIGILL信号 我使用 Google Breakpad 生成本机崩溃报告 以下是详细信息 我的应用程序是为armeabi v7a with霓虹灯支持 它在 NVIDI
  • 调整屏幕和字体设置的 WPF 应用程序(或者,我如何将 DLU 与 WPF 中的单元相关联?)

    在MFC中 对话框的设计使用DLUs http msdn microsoft com en us library bb847924 aspx 在 WPF 中 我们以 1 96 英寸为单位指定 虽然这确实会缩放窗口和视觉元素 但我们如何使 W
  • wordexp 失败时我们需要调用 wordfree 吗?

    wordexp 失败时我们需要调用 wordfree 吗 在某些情况下 调用 wordfree 似乎会出现段错误 例如 当 wordfree 返回字符串为 foo bar 的错误代码时 这在手册页中并不清楚 我已经看到在某些错误情况下使用了
  • 如何对使用 Controller.User 变量的控制器操作进行单元测试?

    我有一个控制器操作 如果用户已经登录 它会自动重定向到新页面 User Identity IsAuthenticated 针对这种情况编写单元测试以确保重定向发生的最佳方法是什么 我一直在使用以下 Mocks 和 Moq 来允许在我的单元测
  • 如何防止 Blazor NavLink 组件的默认导航

    从 Blazor 3 1 Preview 2 开始 应该可以防止默认导航行为 https devblogs microsoft com aspnet asp net core updates in net core 3 1 preview
  • Unity c# 四元数:将 y 轴与 z 轴交换

    我需要旋转一个对象以相对于现实世界进行精确旋转 因此调用Input gyro attitude返回表示设备位置的四元数 另一方面 这迫使我根据这个四元数作为默认旋转来计算每个旋转 将某些对象设置为朝上的简单方法如下 Vector3 up I
  • 对于 C# Express 用户来说,有哪些好的工具可以识别可能重复的代码? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 也可以看看 有什么工具可以检查重复的 VB NET 代码吗 https stackoverflow c
  • 使用 gcc 时在头文件中查找定义的好方法是什么?

    在使用 gcc 时 有人有推荐的方法在头文件中查找定义吗 使用 MSVC 时 我只需右键单击并选择 转到定义 这非常好 我使用过 netbeans gcc 它确实有代码帮助 包括到定义的超链接 所以这是一种选择 但是 我想知道是否有任何其他
  • 如何在C#中控制datagridview光标移动

    我希望 datagridview 光标向右移动到下一列 而不是在向单元格输入数据后移动到下一行 我试图通过 dataGridView1 KeyDown 事件捕获键来控制光标 但这并不能阻止光标在将数据输入到单元格后移动到下一行 提前感谢你的
  • C:设置变量范围内所有位的最有效方法

    让我们来int举个例子 int SetBitWithinRange const unsigned from const unsigned to To be implemented SetBitWithinRange应该返回一个int其中所有
  • 将键码转换为相关的显示字符

    在 C Windows Forms 项目中 我有一个不提供 KeyPressed 事件的控件 它是一个 COM 控件 ESRI 映射 它仅提供 KeyUp 和 KeyDown 事件 包含关键事件参数 http msdn microsoft
  • winform c# 中的弹出窗口

    我正在开发一个需要弹出窗口的项目 但问题是我还希望能够通过表单设计器在此弹出窗口中添加文本框等 所以基本上我有一个按钮 当您单击它时 它将打开我在表单设计器中设计的另一个窗口 我一直在谷歌搜索 但还没有找到我需要的东西 所以我希望你们能帮助
  • 从后面的代码添加外部 css 文件

    我有一个 CSS 文件 例如 SomeStyle css 我是否可以将此样式表文档从其代码隐藏应用到 aspx 页面 您可以将文字控件添加到标头控件中 Page Header Controls Add new System Web UI L
  • 声明一个负长度的数组

    当创建负长度数组时 C 中会发生什么 例如 int n 35 int testArray n for int i 0 i lt 10 i testArray i i 1 这段代码将编译 并且启用 Wall 时不会出现警告 并且似乎您可以分配
  • 如何在 C# 中获取 CMD/控制台编码

    我需要指定正确的代码页来使用 zip 库打包文件 正如我所见 我需要指定控制台编码 在我的例子中为 866 C Users User gt mode Status for device CON Lines 300 Columns 130 K
  • 如何为有时异步的操作创建和实现接口

    假设我有数百个类 它们使用 计算 方法实现公共接口 一些类将执行异步 例如读取文件 而实现相同接口的其他类将执行同步代码 例如将两个数字相加 为了维护和性能 对此进行编码的好方法是什么 到目前为止我读到的帖子总是建议将异步 等待方法冒泡给调

随机推荐

  • PHP 是否有可以在代码中使用的 DEBUG 符号?

    像 C 甚至 C 技术上没有预处理器 这样的语言允许您编写如下代码 DEFINE DEBUG string returnedStr this SomeFoo if DEBUG Debug WriteLine returned string
  • 更改允许的最大配置文件大小 [IIS Express 10/Windows 10]

    添加多个条目后重定向映射在链接的配置文件中 我收到以下错误IIS Express 10在 Windows 10 上 64 位 但 IIS Express 运行 32 位 无法读取配置文件 因为它超出了最大文件大小 我试过添加一个配置注册表项
  • 检查嵌套字典是否是另一个嵌套字典的子集

    假设我有以下两个字典 dict1 battery1 Charge enable Discharge enable battery2 Charge enable Discharge enable dict2 Estimated battery
  • 类型参数声明中的无形状解构元组

    我正在使用返回 Tuple2 的 RightFolder 并希望返回 1部分 第一个版本rightFoldUntupled1工作正常但使用额外的IsComposite类型类 在第二个版本中rightFoldUntupled2我尝试在不使用的
  • 类型参数不受 impl 特征、自身类型或谓词的约束

    我正在尝试实现类型的特征 以便对类型的引用可以转换为迭代器Item实施特定特征 具体来说 考虑以下代码 struct Arena pub trait Scan fn scan self arena mut Arena impl lt a b
  • 如何使用 SQL Server 配置 Passportjs?

    我正在编写一个基于的应用程序SQL服务器 https www npmjs com package mssql ExpressJs NodeJS AngularJs 我是一个快速初学者 我需要处理会话 所以我一直在考虑 PassportJs
  • 用于关系可视化的javascript框架[重复]

    这个问题在这里已经有答案了 可能的重复 javascript 中的图形可视化代码 https stackoverflow com questions 7034 graph visualization code in javascript 我
  • 对象数组数组的 PHPStorm 代码提示

    在 PHPStorm 中 对象数组的代码提示既简单又很棒 class FooList public function construct this gt fooList new Foo 1 this gt fooList new Foo 2
  • PHP7 中的 Argon2i - 选择合适的选项

    我应该使用什么值来生成 Argon2i 哈希值以及如何找到我的硬件可以承受的适当设置 Namely memory cost time cost threads as options memory cost gt 1 lt lt 17 tim
  • JavaScript iFrame 限制

    我知道 出于安全原因 如果 iframe 属于不同的域 则 javascript 无法读取 iframe 的内容 这是有道理的 因为整个页面可能是一个 iframe 并且在框架之外具有监听脚本 问题是 在另一个方向上是否也有同样的限制 if
  • 选项“noEmit”不能与选项“incremental”一起指定

    我正在开发一个 next js 应用程序 它有以下内容tsconfig js compilerOptions target ES2018 module esnext lib dom es2018 es2019 array jsx prese
  • 如何在groovy中获取方法参数/参数的名称?

    我有一个 groovy 脚本 它有一个带有 2 个参数的函数 其中之一是哈希图 我想检查函数内部哈希图变量的名称是否包含子字符串 我该怎么做 def myfunc String var HashMap var2 need a routine
  • Eclipse:向 Maven 日志条目添加时间戳

    我正在使用 Eclipse Neon 1 并且我使用deployGoogle App Engine 插件的目标
  • 在 firebase 上进行电话身份验证时出错

    在 firebase 上进行电话号码身份验证时 我因此错误消息而崩溃 请帮忙 com russvkm chathut 是我的包名称 E AndroidRuntime FATAL EXCEPTION main Process com russ
  • PhpStorm 不与服务器同步

    问题是这样的 我的 phpStorm 项目使用通过 FTP 远程访问服务器 当我保存修改后的文件时 文件会正常上传到服务器 但是当我在服务器上创建文件夹时 我在 phpStorm 中看不到它 任何想法 PhpStorm 是围绕 本地项目文件
  • XACML 3.0 中的多重决策配置文件策略

    我需要为特定用户编写一个策略 它将返回如下 xacml 响应 该政策基于单用户 bob FirstName Create true Read true Update true Delete false MiddleName Create t
  • 这怎么可能:在 WaitOne 中处理 OnPaint

    我有一个ManualResetEvent 有一次 我使用等待该事件WaitOne 令我惊讶的是 我收到了一份OnPaint事件 而在WaitOne 这种情况也经常发生 堆栈跟踪如下所示 我明白了WaitOne会阻塞当前线程 并且在事件触发之
  • 如果Android中的应用程序被强制关闭,如何重置警报

    如果出现以下情况 我的应用程序使用 AlarmManager 设置的警报将被清除 用户在设置中强制关闭我的应用程序 一些任务杀手应用程序自动终止了我的应用程序进程 Android 本身杀死了我的应用程序 因为前端应用程序需要内存 请告诉我如
  • F# XML 多行文档,Visual Studio 2017

    我想添加一个多行 XML 文档 当我的鼠标悬停在它上面时 该文档将出现在 Intelli Sense 气泡中 参见示例 当我使用 Visual Studio 2015 时 以下代码可以工作 请参见下面的屏幕截图 但现在当我使用 Visual
  • 预加载组件

    在工作中 我们使用 DevExpress 作为用户界面 第一次打开使用 DevExpress 控件的表单时 会出现很长的暂停 在某些客户端上有时会出现 15 20 秒 在 Visual Studio 中 我可以看到该阶段正在加载大量程序集