-2
在这里,我试图根据另一个组合框的选择加载一个组合框的项目。一旦选择了组合框项目,它将生成一个httpwebrequest并返回一个字符串列表,这些字符串将用作另一个组合框的项目。但是,只要它调用Client.GetAsync,它就会将控件返回到Task.Result并永远等待。这里出了什么问题。任务不会返回并永远在WPF中等待结果
private void Cmbbox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var task = GetData(cmbBx.SelectedValue.ToString());
var result = task.Result;
_Items= result;
if(_Items!=null&&_Items.Count>0)
_Items.ForEach(item=> 2ndcmbx.Items.Add(item));
}
internal async Task<List<string>> GetData(string Selected)
{
var client = new HttpClient();
HttpResponseMessage response = await client.GetAsync(new Uri(Url));
List<Temp1> tempList =null;
if (response.StatusCode == HttpStatusCode.OK)
{
string jsonString = await response.Content.ReadAsStringAsync();
TempList= Newtonsoft.Json.JsonConvert.DeserializeObject<List<Temp1>>(jsonString);
}
if (TempList== null || TempList.Count == 0)
return null;
var _ComboBoxItemList= TempList.Select(e => e.facilityName).ToList();
return _ComboBoxItemList;
}
我不认为你已经等了很久说“永远”相当,但... –
也http://stackoverflow.com/见问题/ 17706841 /线程阻塞最UI –