【发布时间】:2010-08-06 00:58:26
【问题描述】:
对 C# 比较陌生,想尝试使用一些第三方 Web 服务 API。
这是 XAML 代码
<Grid x:Name="ContentGrid" Grid.Row="1">
<StackPanel>
<Button Content="Load Data" Click="Button_Click" />
<TextBlock x:Name="TwitterPost" Text="Here I am"/>
</StackPanel>
</Grid>
这里是 C# 代码
private void Button_Click(object sender, RoutedEventArgs e)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://api.twitter.com/1/users/show/keykoo.xml");
request.Method = "GET";
request.BeginGetResponse(new AsyncCallback(twitterCallback), request);
}
private void twitterCallback(IAsyncResult result)
{
HttpWebRequest request = (HttpWebRequest)result.AsyncState;
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(result);
TextReader reader = new StreamReader(response.GetResponseStream());
string strResponse = reader.ReadToEnd();
Console.WriteLine("I am done here");
TwitterPost.Text = "hello there";
}
我猜这是由于回调在与 UI 不同的线程上执行的事实引起的?在 C# 中处理这些类型的交互的正常流程是什么?
谢谢。
【问题讨论】:
-
感谢大家的回复。
-
另一种方法是使用 this.Dispatcher 但这个链接对你很有帮助。 humrahimcs.wordpress.com/wp-admin/…
-
你为什么不接受史蒂夫威尔科克的回答?
标签: c# silverlight