-2

我正在使用 C# 和 XAML 开发一个 Windows 8 应用程序,其中我在单个页面中获取大量数据。因此,该应用程序需要花费大量时间来加载,因为它需要等到所有数据都存在然后将它们显示给用户。

我想要的主要是以下内容:我的 Gridview 最多有 15 个组,每个组大约有 10 个图块。目前我需要等到所有数据加载然后显示所有组,这需要很长时间,因为每个组除了它的图块之外还有一些 RSS 提要来获取和解析。那么有没有一种方法可以逐步显示组,当 group1 完成加载时显示然后 group2 被添加,等等...\希望现在问题更清楚了。先感谢您!

4

2 回答 2

1

这个问题非常模糊,但基本原理是这样的,你必须使用某种带有回调的底层工作人员,让你知道工作何时准备好,或者在这种情况下,何时从源获取数据。您可以为此使用线程,但这可能会更复杂一些。

看看这里:

http://elegantcode.com/2009/07/03/wpf-multithreading-using-the-backgroundworker-and-reporting-the-progress-to-the-ui/

您还可以使用新的 async/await 关键字,这非常容易:

http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx

因此,假设您有几个后台工作进程正在进行,然后您可以在每个完成后检查,使用一些计数器来检查所有后台进程是否已完成并根据需要更新用户界面。

于 2013-04-16T11:48:54.677 回答
1

您可以使用任务从 UI 线程中获取数据,并在数据进入时使用调度程序更新 UI。

http://msdn.microsoft.com/en-ca/library/dd537609.aspx

任务很容易创建和使用。

 var task = new Task(() => Console.WriteLine("Running a task."));
 task.Start();
于 2013-04-16T12:06:08.257 回答