code snippet link我正在C#中開發Windows 8應用程序。我的GUI中有2個textBlocks。 我從用戶獲得文本輸入並使用textBlock1.Text = user input;
將其分配給textBlock1。 之後,我調用一個方法從JSON中獲取一些API數據,並使用textBlock2.Text = "specific data";
在textBlock2中填充部分數據,但兩個文本塊的文本都會在不需要的同時更改。根據代碼序列textBlock1的文本應該更早更改,因爲在調用API約10秒後發生textblock2文本更改。 如何首先更改textBlock1的文本? 幫助我,因爲我是windows開發新手。如何在更新文本後刷新textBlock文本?
-2
A
回答
0
在你的方法,你可以使用
HttpResponseMessage response = client.GetAsync(userInput).Result;
string result = response.Content.ReadAsStringAsync().Result;
如果你調用一個異步方法,您應使用等待語句中,如果代碼應等待方法調用,就像這樣:
HttpResponseMessage response = await client.GetAsync(userInput).ConfigureAwait(false);
string result = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
但對於這一點,您必須在方法更改爲異步:
private async void button_Click(object sender, RoutedEventArgs e)
也許,它解決您的問題。
Offtopic:因爲你是新手,我建議訪問this頁面並閱讀它們,以更好地理解Stack Overflow。
更新: 我忘了 「.ConfigureAwait(假)」
+0
對不起@SeanStayn。它無法解決我的問題。 –
0
API調用鎖定UI。如果你想在textblock 2之前更新textblock1,你必須在不同的線程上進行調用。 像這樣的東西應該工作。
//make the method async.
private async void button_click(object sender, RoutedEventArgs e)
{
//...
//assuming userMessage is textblock2.
userMessage.Text = await MakeAPICallAsync();
//...
}
//where MakeAPICallAsync() is another function defined as
private async Task<string> MakeAPICallAsync()
{
//API call;
return result;
}
相關問題
- 1. SQL更新並顯示文本後PHP文本區刷新
- 2. C# - 在TextBlock中覆蓋/更新文本
- 3. UITextView在更新後不更新文本
- 4. 在新窗口中綁定TextBlock文本?
- 5. RoR +如何在Ajax刷新文本框值時刷新javascript值
- 6. 將文本更改爲文本框後更新純文本
- 7. EaselJS如何更新文本
- 8. C#Winform Webbrowser在文檔文本更新後未更新
- 9. 如何刷新本地XML文件?
- 10. 刷新後如何在文本字段中保留值?
- 11. 刷新超鏈接文本
- 12. 文本消失上刷新
- 13. 刷新文本框VBA
- 14. 如何更新視圖中的文本然後更新腳本中的視圖?
- 15. 如何在使用setText更改文本後更新屏幕?
- 16. 更新p文本
- 17. DoAction更新文本
- 18. 更新文本框
- 19. 我點擊提交按鈕後如何刷新文本字段?
- 20. Wpf DatePicker文本在綁定源更新後未更新
- 21. 在更新後觸發器內跟蹤文本列的更新
- 22. 在markdown中更新文本
- 23. 更新d3正文文本
- 24. 更新文本文件
- 25. 如何在添加新文件後更新到mercurial的最新版本?
- 26. 在Silverlight中刷新似乎文本框
- 27. 如何在Heroku上回滾後在本地更新文件?
- 28. 當其他textview文本更新時如何更新一個textview文本
- 29. 從GridView列到文本框的Ajax刷新/更新總和
- 30. 文本編輯後更新UITableView崩潰
這將有助於,如果你張貼代碼片段。 –
@SeanStayn stayn我已添加代碼段看看。希望它清除我想要的 –
發佈'populateResponses'方法的代碼。 – Unknown