我的意图是,当按下按钮时,屏幕上会立即显示活动指示符,然后会发生数据库查询。一旦查询完成,就会创建一个XAML网格,活动指示符将被删除,并添加新的XAML网格。在实践中,这一切都是工作的,但经常活动指示符不显示,所以我想知道我是否有我的编码错误。
我有一个按钮,导致UpdateDetails方法被触发:
private async Task UpdateDetails()
{
details.Children.Clear();
details.Children.Add(Helpers.Activity.Create());
var newGrid = doLongRunningDatabaseTaskandCreateXAML();
details.Children.Clear();
details.Children.Add(Helpers.Activity.Create(newGrid);
}
如何在数据库操作完成之前先显示活动指示器,然后再显示newGrid?请注意,最重要的是在数据库操作和newGrid创建过程中显示活动指示器。
1条答案
按热度按时间v2g6jxz61#
很简单:
Task.Run
的UI线程中添加不需要的代码MainThread
中编写这部分代码即可更新
你的代码应该看起来像这样:
注意如果
doLongRunningDatabaseTaskandCreateXAML
是async task
类型,那么你根本不需要使用Task.Run
方法。