|
|
1
2
这是两个制约因素。我的方法是创建一个“异步包装器”函数来为您包装它。这将需要3个功能(代表): 1.在新线程(“f”)上执行(确保在函数中未捕获任何UI对象!) 2.在异常情况下执行(“econt”) 这两个continuation都将通过System.Windows.Deployment.Current.Dispatcher.BeginInvoke在UI线程上调度。 这样,您只需将web服务调用更改为“通过异步同步”,正如mbeckish所说(使用ManualResetEvent,来自同步线程的WaitOne,在回调上设置)。 帮助程序的代码可能如下所示(psuedocode,未检查):
使现代化 要通过异步调用进行同步,您可以这样做,假设您使用默认的“基于事件的异步模式”(在我看来,使用BeginXXX/EndXXX更容易)。
|
|
2
0
为了避免重构,您可以将CallWebService实现为一种同步方法,在内部使用异步请求/响应:
http://msdn.microsoft.com/en-us/library/system.net.webrequest.endgetrequeststream.aspx |
|
|
Bigeyes · 如何在MVVM模式中添加行? 9 年前 |
|
|
User9898 · 悬停回到原始颜色时为什么选择 10 年前 |
|
|
user3112242 · 在Silverlight中打印。缺少一些页面 10 年前 |
|
|
Huma Ali · WCF已完成事件中的异常处理 10 年前 |
|
|
Nerd in Training · 文件副本发布错误 11 年前 |