首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASMX Web服务- SoapHttpClientProtocol.InvokeAsync

ASMX Web服务- SoapHttpClientProtocol.InvokeAsync
EN

Stack Overflow用户
提问于 2012-05-09 05:51:37
回答 1查看 1.6K关注 0票数 1

我有一个可以将XML数据异步上传到web服务的WPF应用程序。我从非UI线程调用web服务:

代码语言:javascript
复制
Task.Factory.StartNew(() => {
  WebServiceHelper.ImportMarketDataAsync(....);
});

我已经使用wsdl.exe生成了代理。proxy类提供了两种异步调用web服务函数的方法:

1) *MethodName*异步

2)开始*MethodName*&结束*MethodName*

第一种方法使用SoapHttpClientProtocol.InvokeAsync,第二种方法使用SoapHttpClientProtocol.BeginInvoke。

在任何一种情况下,当代理命中调用函数(即InvokeAsync或BeginInvoke)时,web服务调用都是从UI线程中调用的,因此应用程序看起来没有响应,因为UI线程很忙。如果我在foreach循环中调用async函数,比如250个元素的集合,UI将会冻结,直到所有异步调用完成。

有没有办法在不阻塞主UI线程的情况下调用asmx web服务?

在进阶时谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-10 02:53:44

当应用程序附加到VS2010进行调试时,UI将冻结。当我自己运行应用程序时,应用程序并没有冻结。与调试器有关的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10507096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档