我正在构建一个需要从互联网下载RSS数据的Windows 8应用程序。ProgressRing变为不活动
有一个等待完成的GetFeedsAsync()方法负责这个,在我的应用的主页的(异步)LoadState方法中调用。
我选择了这项任务委托给后台线程:
await Task.Run(() => feedDataSource.GetFeedsAsync());
所有我想要的是显示ProgressRing并保持活动状态,直到过程完成和下载的数据是已经能够显示。
我所定义的ProgressRing在XAML:
<ProgressRing x:Name="LoadingProgressRing" IsActive="True" Foreground="White" Margin="0,400,0,0" Width="80" Height="80" VerticalAlignment="Top" Canvas.ZIndex="1" />
,然后加入这些2条线路中的代码隐藏:
LoadingProgressRing.IsActive = true;
await Task.Run(() => feedDataSource.GetFeedsAsync());
LoadingProgressRing.IsActive = false;
当应用程序启动时,它导航到主页,其中ProgressRing显示1秒钟然后消失。数据下载在20秒后结束,然后显示出来。
为什么ProgressRing的表现如此呢?我想不出有什么理由让它变为非活动状态,直到
LoadingProgressRing.IsActive = false;
命令被执行。
不确定'LoadingProgressRing',但你并不需要'Task.Run' - 只是'等待feedDataSource.GetFeedsAsync()'直接。 –