2013-04-28 48 views
0

我有一个将数据存储在独立存储中的应用程序。我有一个读取数据的函数(在Apps.xaml.cs中调用):如何延迟MainPage,以便在数据加载后启动?

await ReadData();

但是,在数据读取之前,在MainPage中调用OnNavigatedTo。此时保存数据的缓冲区仍为空。

如何防止MainPage.OnNavigateTo()与ReadData未完成一样长?

我尝试通过在Apps中设置信号量并在MainPage构造函数中设置WaitOne()来同步Apps & MainPage。这将该应用程序挂在WaitOne上。

任何想法如何解决这个时间问题?

回答

0

您不能延迟加载主页 - 就好像加载周期没有及时执行一样,应用程序将被操作系统关闭。

解决此问题的最佳方法是创建一个临时初始页面,该页面将处理向用户显示UI时的数据下载。数据下载后,您可以重定向到您的主应用程序页面。

+0

我看过BackgroundWorker。 BackgroundWorker是否可以访问MainPage的局部变量,即读取数据并将数据存储在那里? – 2013-04-28 05:03:37

+0

实施了LewisBenge,它工作的很棒!还添加了:NavigationService.RemoveBackEntry();所以回去不会通过启动画面。 – 2013-05-08 18:15:39