Relativamente nuovo a C# e voleva provare a giocare con alcune API di servizi Web di terze parti.UnauthorizedAccessException: accesso cross-thread non valido nell'applicazione Silverlight (XAML/C#)
Ecco il codice 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>
e qui è il codice 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";
}
Sto indovinando che questo è causato dal fatto che il callback viene eseguito su un thread separato rispetto alla UI? Qual è il flusso normale per gestire questi tipi di interazioni in C#?
Grazie.
Grazie a tutti per le vostre risposte. – PolandSpring
Un altro modo per fare ciò è usare il this.Dispatcher ma questo link è molto utile per te. http://humrahimcs.wordpress.com/wp-admin/post.php?post=420&action=edit&message=6&postpost=v2 – DoNetDeveloper
Perché non accetti la risposta di Steve Willcock? –