我正在开发一个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)