预加载用户控件

时间:2010-03-08 16:18:41

标签: c# winforms

我有一个用户控件需要几秒钟才能加载。有没有办法在加载表单时预加载控件?

3 个答案:

答案 0 :(得分:0)

您是否拥有UserControl的来源?如果是这样,我将首先尝试优化UserControl。听起来UC在启动时创建了太多的UI对象。预加载不会随时为您省钱。 Winforms UI是单线程的,因此几秒钟的加载时间将被移动到应用程序的启动。我不知道您是否正在创建UC的多个实例。如果是这样,您可以重用单个实例以避免创建费用。

答案 1 :(得分:0)

首先,使用分析器确定实际导致减速的原因。

然后,如果合适,您可以尝试优化代码以使其更快(达到可接受的级别),或者将独立代码(例如数据访问)重构为单独的位置,以便可以异步执行用户控件加载。这就是您可以做的所有事情,因为必须在与UI相同的线程上加载用户控件。

答案 2 :(得分:0)

不要在UserControl的构造函数或Load事件中进行大量工作,而是在工作线程中执行。 BackgroundWorker对此有好处。这将使您快速启动表单,但不一定快速可用的用户界面。考虑一下闪屏。