当前位置: 代码迷 >> Web Service >> 请问:怎么停止异步调用的webservice中的[WebMethod]
  详细解决方案

请问:怎么停止异步调用的webservice中的[WebMethod]

热度:664   发布时间:2012-01-02 22:40:04.0
请教:如何停止异步调用的webservice中的[WebMethod]?
客户端异步调用了一个webservice中的方法A,A的执行时间较长(计算n条数据),并在执行过程中把进度(已执行的条数)记录在数据库中。客户端从数据库读进度并显示。
如果在A执行过程中要停止它,如何实现?
谢谢

------解决方案--------------------
可以定义一个中断标志,比如:
static bool userInterrupted;
方法A在进入时,把标志设为false,在循环中不断检查该标志,如果检查到true,就中断循环。
方法B被调用时把该标志设为true

------解决方案--------------------
你可以使用Cache变量。每次请求申城一个guid标识。类似的做法

http://blog.csdn.net/net_lover/article/details/5222971

这个文章跟你的不是完全一样,但是提供的是一种思路。你可以根据操作的不同来进行停止还是继续的操作
------解决方案--------------------
基于孟子的思想
首先 每个A需要分配一个GUID用于区分并发的多个A进程

然后 既然A每次都需要记录进度,在进度表增加一个中断标志字段,由B来设置是否中断
A写进度时先判断改字段 为真时自己主动关闭

  相关解决方案