如何使加载器动画在代码执行时运行

本文关键字:代码 执行 运行 动画 何使 加载 | 更新日期: 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