我正在学习Windows Phone 8.1开发,我可能完全错误地编程了
需求:我想使用HttpClient()
从网上下载文本文件,并将其显示在TextBlock1
从各种教程中我发现了以下内容:
public async void DownloadDataAsync()
{
string data = "some link to Textfile.txt";
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync(data);
HttpContent content = response.Content;
string result = await content.ReadAsStringAsync();
UpdateTextBlock1(result);
}
然后是其他功能。
public void UpdateTextBlock1(string result)
{
TextBlock1.Text = result;
}
private void BtnDownloadData_Click(object sender, RoutedEventArgs e)
{
Task t = new Task(DownloadDataAsync);
t.Start();
}
代码启动得很好 - 按下按钮后,我收到RPC_E_WRONG_THREAD。
当所有线程都没有完成时,我是否正在尝试调用该方法?我如何有效地编码,以便使用txt数据更新TextBlock1?
感谢您的理解,宝贝在编程方面的步骤,我无法通过谷歌找到相关的答案。 (也许我还不知道怎么问?)
答案 0 :(得分:1)
您需要更新UI线程上的文本块,如下所示:
Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
{
TextBlock1.Text = result;
});
这个主题有很多帖子。