如何中断长时间运行的Web Service调用

时间:2013-09-25 14:29:02

标签: c# web-services

我正在处理一项网络服务电话,可能需要几秒钟到几分钟才能完成。它构造请求的数据并返回它。现在,对于长时间调用WS,用户界面(WinForms)变得没有响应;用户无法取消操作。

解决这个问题的理想方法(我认为)是将操作分解为两个Web服务调用:第一个是请求,第二个是获取状态或可用数据。

但是如果无法更改Web服务结构,那么中断Web服务调用的最佳方法是什么?

更新

可以异步进行WS调用。如果用户想要取消操作,那么我想减轻服务器未完成的工作(而不是让线程正常完成并丢弃响应)。 Thread.Abort()是可能的,但我想知道是否有更好的方法。

我正在使用的Web服务是基于WCF的。这些操作是只读的,因此如果被中断,则无需撤消。

1 个答案:

答案 0 :(得分:0)

您可以生成异步代理类来实现此功能。

请查看以下链接以获取示例

http://msdn.microsoft.com/en-us/library/wyd0d1e5(v=vs.100).aspx

相关问题