我的 Silverlight 项目中有这段代码:
private void button1_Click(object sender, RoutedEventArgs e)
{
string baseUri = "http://foo.bar";
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(new Uri(baseUri));
request.BeginGetResponse(new AsyncCallback(ReadCallback),request);
}
private void ReadCallback(IAsyncResult asynchronousResult)
{
HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
using (StreamReader streamReader1 = new StreamReader(response.GetResponseStream()))
{
string resultString = streamReader1.ReadToEnd();
MessageBox.Show(resultString);
}
}
当我运行代码时,我得到以下异常:
unauthorizedaccessexception
Invalid cross-thread access.
我认为这是返回的字符串有问题。但是,即使我这样说:
MessageBox.Show("foobar");
同样的例外上升。我认为问题来自无法执行此类操作的 ReadCallback 函数。
你能帮助我吗?
谢谢,
问候