簡體   English   中英

如何中斷長時間運行的Web服務調用

[英]how to interrupt a long-running Web Service call

我正在處理一個Web服務呼叫,可能需要花費幾秒鍾到幾分鍾才能完成。 它構造請求的數據並返回它。 現在,對於長時間運行到WS的調用,用戶界面(WinForms)變得無響應; 用戶無法取消該操作。

解決此問題的理想方法(我認為)是將操作分為兩個Web服務調用:第一個是請求,第二個是獲取狀態或可用數據。

但是,如果無法更改Web服務的結構,中斷Web服務調用的最佳方法是什么?

更新:

WS調用可以異步進行。 如果用戶想取消該操作,那么我想減輕服務器的工作量(而不是讓線程正常完成並丟棄響應)。 Thread.Abort()是可能的,但我想知道是否有更好的方法。

我正在使用的Web服務基於WCF。 這些操作是只讀的,因此如果被中斷,則沒有任何撤消操作。

您可以生成異步代理類來實現此功能。

請查看以下鏈接獲取示例,

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM