首页 新闻 会员 周边 捐助

如何停止正在运行的Webservice里的方法

0
悬赏园豆:30 [已解决问题] 解决于 2014-11-29 11:47

假如我有一个Web service 里面有一个方法正在执行.....

我想中途停止这个方法...求各路大神 指教....

JasonGu0的主页 JasonGu0 | 初学一级 | 园豆:4
提问于:2013-08-21 13:41
< >
分享
最佳答案
0

把你这个方法拆分成很多细小的方法,每个细小方法执行前都判断一次是否被取消。

收获园豆:16
Launcher | 高人七级 |园豆:45050 | 2013-08-21 13:43

判断是否取消?抱歉!我不知道怎么判断一个方法是否被取消?

JasonGu0 | 园豆:4 (初学一级) | 2013-08-21 13:51

@恒_心: 那你的意思是,你觉得这个方法应该停止了,那么你运行一个语句,这个方法就应该停止了,是这样吗?

Launcher | 园豆:45050 (高人七级) | 2013-08-21 13:56

@Launcher: 因为这个方法需要执行 太长的时间,而假如 我执行方法的时候 因为某个原因 需要停止这个方法,那怎么实现呢?谢谢

JasonGu0 | 园豆:4 (初学一级) | 2013-08-21 14:02

@恒_心: 看这里:http://q.cnblogs.com/q/53462/#c546708

然后我要告诉你,dudu 告诉你的方法不可行,因为线程不是这么运行的(参看:http://msdn.microsoft.com/zh-cn/library/ty8d3wta(v=vs.85).aspx)。即使在我上面链接中使用 Task 来运行和取消任务是可行的,但是它仍然使用到了我给你回答的第一种方式的原理。

最后,你应该回过头来问自己:

1、为什么要停止方法的执行?

2、是否可以通过异步的方式让此方法无害的执行完成?

3、为什么需要一个 webservice 执行一个超长时间的方法?

4、是否可以改进一下架构避免这种情况的发生?

Launcher | 园豆:45050 (高人七级) | 2013-08-21 14:18
其他回答(2)
0

我想到的一个解决方法:将这个方法放在独立的线程中执行,然后强制中止这个线程

收获园豆:7
dudu | 园豆:30778 (高人七级) | 2013-08-21 14:03
0

用return , 例如, 我想在 5点钟的时候终止, 在里面加上  if (DateTime.Now.Hour == 6) { return ; }

收获园豆:7
t101lian | 园豆:32 (初学一级) | 2013-08-27 12:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册