异步方法不会等到用户操作完成

时间:2018-03-26 23:37:46

标签: c# asynchronous xamarin async-await

我有一个带有异步方法的静态类。异步方法等待用户操作(用户需要在对话框上确认)。我需要在App.xaml.cs(xamarin)

中的构造函数中调用此方法
public static class StoragePermission
{ 
    public static async Task Check()
    {
       try
        {
            var status = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Storage);
            if (status != PermissionStatus.Granted)
            {

                var results = await CrossPermissions.Current.RequestPermissionsAsync(new[] { Permission.Storage });
                status = results[Permission.Storage];
            }
        }
        catch (Exception ex) {}
    }
}

我尝试在构造函数中调用此方法,如下所示:

StoragePermission.Check().Wait();

但是按照上面的说法,我根本不会调用下一个代码。在用户操作之后,焦点不会返回到代码。

我也是这样试过的:

public Task StorageInitialization { get; private set; }

然后在构造函数中,我做

StorageInitialization = StoragePermission.Check();

但是执行此代码会返回构造函数中的下一行,但不会等待用户操作完成。

如果有人可以帮助我,我感激不尽

0 个答案:

没有答案