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. 如何在JTextPane中无刷新刷新(刷新)文本
- 4. UITextView在更新后不更新文本
- 5. Togglebutton在设置后不刷新文本
- 6. 刷新文本框
- 7. 刷新文本框
- 8. 在新窗口中绑定TextBlock文本?
- 9. RoR +如何在Ajax刷新文本框值时刷新javascript值
- 10. 更新文本后标签文本未更新
- 11. 将文本更改为文本框后更新纯文本
- 12. 在新版本中刷新js文件
- 13. 可可文本 - 即时刷新文本
- 14. EaselJS如何更新文本
- 15. 如何在jquery刷新后保持焦点在文本字段
- 16. C#Winform Webbrowser在文档文本更新后未更新
- 17. 如何刷新标签页时的文本框文本在WPF中更改
- 18. 如何刷新本地XML文件?
- 19. Javascript:我如何刷新文本值
- 20. 如何刷新Matplotlib中的文本?
- 21. 如何使ListBox刷新文本?
- 22. 刷新后如何在文本字段中保留值?
- 23. TableView刷新和文本框
- 24. TextView文本值刷新onclick
- 25. 文本消失上刷新
- 26. 刷新超链接文本
- 27. 刷新文本框VBA
- 28. 动态文本刷新
- 29. 文本框内容刷新
- 30. 文本值gtkdialog不刷新
这将有助于,如果你张贴代码片段。 –
@SeanStayn stayn我已添加代码段看看。希望它清除我想要的 –
发布'populateResponses'方法的代码。 – Unknown