-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 –