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関数にあると思います。
手伝って頂けますか?
ありがとうございました、
よろしく