Примечание: _Этот вопрос относится к _
При вызове асинхронного метода не устанавливается переменная-член
Изначально у меня есть taskAssignedToUserId = 1 , после чего я обновляю taskAssignedToUserId в Асинхронный метод HttpClient , но при выходе из метода я не получаю обновленное значение taskAssignedToUserId.
Код
string taskAssignedToUserId="1";//default value
public async static void PostRequestUserId(string url, string api_key, string device_token, string device_type, string username)
{
IEnumerable<KeyValuePair<string, string>> queries = new List<KeyValuePair<string, string>>()
{
new KeyValuePair<string, string>("username",username),
new KeyValuePair<string, string>("api_key",api_key),
new KeyValuePair<string, string>("device_token",device_token),
new KeyValuePair<string, string>("device_type",device_type)
};
HttpContent q = new FormUrlEncodedContent(queries);
using (HttpClient client = new HttpClient())
{
using (HttpResponseMessage response = await client.PostAsync(url, q))
{
using (HttpContent content = response.Content)
{
var mycontent = await content.ReadAsStringAsync();
var jo = JObject.Parse(mycontent);
string validApi = jo["Result"]["valid_api"].ToString();
try
{
if (validApi == "True")
{
taskAssignedToUserId = jo["Result"]["user_id"].ToString();
}
else
{
MessageBox.Show("API is invalid!");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
}
//function call
MessageBox.Show(taskAssignedToUserId); // updated value