如何使加载器动画在代码执行时运行
本文关键字:代码 执行 运行 动画 何使 加载 | 更新日期: 2023-09-27 18:17:32
我有一个页面,它运行了大量的代码来为用户准备页面和页面布局。
千载难逢。但是当它出现时,用户大约需要等待三秒钟。
显然,微软只允许2秒或更短的等待时间。Daaaaang .
我已经优化了一遍又一遍的优化了代码,没有别的办法:代码已经尽可能的快了。因此,很自然地,我开始制作一个加载器。
我试图更新几个控件,但由于UI线程被冻结,他们没有工作。
我搜索,搜索,搜索,发现了这个,这是令人困惑的,并没有真正的帮助,部分原因是WP7的c#版本,部分原因是我是c#的初学者。
如何使加载程序在UI线程冻结时工作?
Silverlight Toolkit For WindowsPhone引入了PerformanceProgressBar
,"它专门使用合成线程来制作动画,而不是像这篇WindowsPhone Geek文章中描述的那样使用UI(用户界面)线程"。这应该有助于你的冻结UI。
对于并行执行(由Merlyn建议),我建议使用QueueUserWorkItem方法在BackgroundWorker
上的单独线程中执行代码,使UI线程处于活动状态以进行UI更新,但如本文所述,您将需要使用Dispatcher.BeginInvoke
从那里更新UI。
您可以尝试使用BackgroundWorker
类。那个页面有一个如何使用它的教程。
参见这个问题和我的答案的另一个教程。虽然不是针对Windows Phone 7,但它仍然与等待任务完成时更新UI有关:
- 如何加载UI独立于数据
以下是Windows Phone 7专用的BackgroundWorker
使用教程:
- http://blogs.msdn.com/b/priozersk/archive/2010/09/20/creating-progress-dialog-for-wp7.aspx