Relativ neu zu C# und wollte versuchen, mit einigen Web-Service-APIs von Drittanbietern damit zu spielen. HierUnauthorizedAccessException: Ungültiger Cross-Thread-Zugriff in Silverlight-Anwendung (XAML/C#)
ist der XAML-Code
<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>
und hier ist der C# -Code
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";
}
Ich vermute, dass dies durch die Tatsache verursacht wird, dass der Rückruf auf einem separaten Thread ausgeführt wird als die UI? Was ist der normale Ablauf, um mit diesen Arten von Interaktionen in C# umzugehen?
Danke.
Vielen Dank für Ihre Antworten. – PolandSpring
Eine andere Möglichkeit, dies zu tun, ist die Verwendung des this.Dispatcher , aber dieser Link ist sehr hilfreich für Sie. http://humrahimcs.wordpress.com/wp-admin/post.php?post=420&action=edit&message=6&postpost=v2 – DoNetDeveloper
Warum akzeptierst du Steve Willcocks Antwort nicht? –