我在 Windows 8 开发中使用异步方法。但在完成完整方法执行之前,它不会更新 UI。
这是我的代码。
当用户按下屏幕上的刷新按钮时,下面的方法调用。
public async override void ExceuteRefresh()
{
IsBusy = true; //This is bounded to my UI to show progress bar, but its not updating to UI
foreach (var category in CategoryObservableColl)
{
CheckforOnlineUpdatesAsync(category, true);
}
}
private async void CheckforOnlineUpdatesAsync(Category category, bool isReFresh)
{
var feed = await _dataService.GetOnlineRssFeedAsync(category.RssFeedLink.URL);
var newsCategory = _dataService.GetCategoryFromFeed(feed, true, category.RssFeedLink);
if (newsCategory != null)
{
isRefreshCount +=1;
}
if(isRefreshCount ==9)
{
IsBusy = false;
}
}
IsBusy 已实现 InotifyPropertyChanged。
任何帮助将不胜感激。尝试了以下方法。
public override async void ExceuteRefresh()
{
await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => IsBusy = true);
_reloadCategories = false;
_refreshLinkCount = 0;
try
{
foreach (var category in CategoryObservableColl)
{
_refreshLinkCount += 1;
await CheckforOnlineUpdatesAsync(category, true);
}
}
catch (Exception ex)
{
MainPage.ShowMessage("Something Went wrong!. " + ex.Message);
}
}
还将以下方法返回类型作为任务。私有异步任务 CheckforOnlineUpdatesAsync(Category category, bool isReFresh) { }
提前致谢