如何将ACR用户对话框ShowLoading方法作为异步任务运行?

时间:2018-02-09 15:19:57

标签: xamarin xamarin.forms async-await

是否可以将ACR UserDialogs.Instance.ShowLoading方法作为异步任务运行?我尝试了下面这个,但是加载动画结结巴巴,表明它没有运行异步:

await Task.Run(async () =>
{                
    UserDialogs.Instance.ShowLoading("doing stuff...");
});

await DoComplexStuff();
UserDialogs.Instance.HideLoading();

最好将ShowLoading方法作为异步任务运行,而不是必须重写DoComplexStuff方法(以及它调用的许多方法)。

1 个答案:

答案 0 :(得分:1)

   
using (UserDialogs.Instance.Loading("doing stuff..."))
{
    await DoComplexStuff();
}
// no hide loading needed

也许你的DoComplexStuff正在UI线程上运行。您可以尝试将其移动到新线程中:

using (UserDialogs.Instance.Loading("doing stuff..."))
{
    await Task.Run(DoComplexStuff);
}