客户端异步调用了一个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写进度时先判断改字段 为真时自己主动关闭