小编Agi*_*obo的帖子

使用async/await仍会阻止Xamarin.Android上的UI

我正在开发一个Xamarin.Android项目,应用程序需要在更新UI之前使用Web服务.我应用了async/await但它仍然阻止了UI.

这是UI代码

    private async void Login(object sender, EventArgs e)
    {
        var username = _usernamEditText.Text.Trim();
        var password = _passwordEditText.Text.Trim();
        var progressDialog = ProgressDialog.Show(this, "", "Logging in...");
        var result = await _userService.AuthenticateAsync(username, password);

        progressDialog.Dismiss();
    }
Run Code Online (Sandbox Code Playgroud)

这是服务代码

public async Task<AuthenticationResult> AuthenticateAsync(string username, string password)
    {
        using (var httpClient = CreateHttpClient())
        {
            var url = string.Format("{0}/token", Configuration.ServiceBaseUrl);
            var body = new List<KeyValuePair<string, string>>
            {
                new KeyValuePair<string, string>("username", username),
                new KeyValuePair<string, string>("password", password),
                new KeyValuePair<string, string>("grant_type", "password")
            };
            var response = httpClient.PostAsync(url, new FormUrlEncodedContent(body)).Result;
            var …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous xamarin.android async-await xamarin

3
推荐指数
1
解决办法
2086
查看次数

标签 统计

async-await ×1

asynchronous ×1

c# ×1

xamarin ×1

xamarin.android ×1