Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight 如何避免在添加多个用户控件时出现不稳定的动画?_Silverlight_Performance_Silverlight 3.0 - Fatal编程技术网

Silverlight 如何避免在添加多个用户控件时出现不稳定的动画?

Silverlight 如何避免在添加多个用户控件时出现不稳定的动画?,silverlight,performance,silverlight-3.0,Silverlight,Performance,Silverlight 3.0,我有一个Silverlight应用程序,定期加载更多数据,并将其作为用户控件添加到页面中。我在一个集合中加载大约25个对象,并为每个对象创建一个UserControl 这最终会花费相当多的时间!在UI中加载25个对象需要50-150毫秒。这使得我的动画相当不稳定,这是非常不受欢迎的 有没有办法加快用户控件的加载速度?我不希望添加某种每秒加载X个项目的缓冲层。我也不希望预加载一些大的UI对象缓冲区,我会根据输入的数据量对其进行僵化/重用。然而,目前我想不出任何其他的选择 UserControls本

我有一个Silverlight应用程序,定期加载更多数据,并将其作为用户控件添加到页面中。我在一个集合中加载大约25个对象,并为每个对象创建一个UserControl

这最终会花费相当多的时间!在UI中加载25个对象需要50-150毫秒。这使得我的动画相当不稳定,这是非常不受欢迎的

有没有办法加快用户控件的加载速度?我不希望添加某种每秒加载X个项目的缓冲层。我也不希望预加载一些大的UI对象缓冲区,我会根据输入的数据量对其进行僵化/重用。然而,目前我想不出任何其他的选择

UserControls本身非常简单,我很惊讶它们的加载速度如此之慢。基本上,我只是在构造函数中创建它们,不做任何昂贵的事情,设置DataContext并将它们添加到父画布中


它应该这么慢吗?有什么明显的东西我可能遗漏了吗?我能不能把它和动画时间分离?我想不是-UI几乎肯定是单线程的。

我不完全确定你的动画是如何与创建UI对象相结合的,所以我可能遗漏了一些东西。坦率地说,我知道的唯一解决办法是你说过的你不想追求的东西。我将在动画开始之前创建新的UI对象,并将其可见性设置为“折叠”。然后,可以让动画在适当的时间修改UI元素的可见性,使其可见。在创建UI对象时会有一个开销,您提到的50-150毫秒听起来并不是完全不符合要求的,因为您不知道这些对象会做什么,您无法逃避。您可以确保UI对象没有在构造函数或加载的事件处理程序中执行任何不必要的工作。我对性能问题的总体想法是,您需要进行测试,而不是理论化,因此我会尝试多种选项,看看哪种方案能提供您所需的性能。

在各种项目上尝试了很长时间后,我唯一能说的是,它真的太慢了。我没有找到任何其他的解决方案,除了在任何时间、任何地方,尽可能少地创建对象

UI对象创建速度惊人地慢。这似乎是一个可悲的事实