我知道如何在日常的.NET中做到这一点,但是在WP7开发和Silverlight的问题上让我很生气。 HttpWebRequest响应必须完成异步,很酷,但是如何从异步方法调用UI线程?
即
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create('http://stackoverflow.com');
request.BeginGetResponse(new AsyncCallback(onRequestComplete), request);
我在一个类中调用它,它有一个委托设置。我想从 onRequestComplete 上调用UI线程上的委托。我知道我可以这样做,从代表处调用,但我觉得这会更清洁。
提前致谢
答案 0 :(得分:1)
您需要有权访问相关的Dispatcher
,然后致电Dispatcher.BeginInvoke
。
任何UI元素都可以通过Dispatcher
属性访问系统调度程序。如果您需要以可测试的方式执行此操作,您可能希望将调度程序抽象为具有实现的IDispatcher
接口,以使用正常的生成,以及类似SameThreadDispatcher
的测试。