非同期呼び出しからフォームに書き込もうとしています。私がオンラインで見た例は、これは機能するはずですが、エラーが発生し続けることを示しています。
最初に、Disbatcherがpを呼び出すことはありませんが行われる呼び出し。次に、req.EndGetResponse(a)の呼び出しでSystem.Security.SecurityExceptionを取得します。
問題の原因は何ですか?
public partial class Page : UserControl
{
Uri url = new Uri("http://www.google.com", UriKind.Absolute);
HttpWebRequest req;
private delegate void PrintToUIThread(string text);
PrintToUIThread p;
public Page()
{
InitializeComponent();
req = (HttpWebRequest)WebRequest.Create(url);
p = new PrintToUIThread(print);
req.BeginGetResponse(new AsyncCallback(WebComplete), req);
}
void WebComplete(IAsyncResult a)
{
try
{
Dispatcher.BeginInvoke(p);
HttpWebRequest req = (HttpWebRequest)a.AsyncState;
HttpWebResponse res = (HttpWebResponse)req.EndGetResponse(a);
Dispatcher.BeginInvoke(p);
}
catch (Exception ex)
{
print(ex.ToString());
}
}
private void print(string text)
{
PageTextBox.Text = text;
}
private void print()
{
PageTextBox.Text = "Call From Invoke";
}
}