timer控件stop的时候,有没有什么办法让timer控件下的方法立即结束,不继续执行

fengcheng1104 2016-01-20 03:59:36
timer控件stop的时候,timer控件下的方法不会立即结束,会执行完方法。现在程序要求timer控件stop后,timer控件下的方法能立即结束,不再继续执行方法。各位大神有没有好的办法。
...全文
210 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
雪狼孤竹 2016-01-22
  • 打赏
  • 举报
回复
引用 7 楼 From_TaiWan 的回复:
这个问题有难度,调用并执行一个方法了,中途要终止!比如你的这个方法正在操作数据库---往2个表里写数据,刚好写完A表,将要往B表写的那一刻,方法中断了,而B表里有和A表关联的信息(如外外键),B表缺失外键信息,会引起混乱。此时,你的回滚数据库,要回滚到哪个点,就是问题了? 我想你该这样思考:既然调用了,那就等它执行完,让它做件“完整”的事,然后根据某些限制,决定是接受它做的这件事,还是放弃它做的这件事,这样,就在我们可控的范畴内了。 我们的一条完整的语句,一个方法,都是一个“原子操作”,硬要拆开这个原子操作,就会有难度,等待高手解答
个人感觉,楼主所要做的立即停止,可以理解为每一个原子操作不被执行,那么可以在Time方法中的每一个原子操作后,来鉴别是否为已停止,如果停止,则回滚该原子操作。不过回滚得鉴别该停止是在结果产生前发生,还是在结果产生后发生。
早起晚睡 2016-01-21
  • 打赏
  • 举报
回复
引用 7 楼 From_TaiWan 的回复:
这个问题有难度,调用并执行一个方法了,中途要终止!比如你的这个方法正在操作数据库---往2个表里写数据,刚好写完A表,将要往B表写的那一刻,方法中断了,而B表里有和A表关联的信息(如外外键),B表缺失外键信息,会引起混乱。此时,你的回滚数据库,要回滚到哪个点,就是问题了? 我想你该这样思考:既然调用了,那就等它执行完,让它做件“完整”的事,然后根据某些限制,决定是接受它做的这件事,还是放弃它做的这件事,这样,就在我们可控的范畴内了。 我们的一条完整的语句,一个方法,都是一个“原子操作”,硬要拆开这个原子操作,就会有难度,等待高手解答
我同意这个观点,有些时候不是你想怎么着就怎么着的
秋的红果实 2016-01-20
  • 打赏
  • 举报
回复
这个问题有难度,调用并执行一个方法了,中途要终止!比如你的这个方法正在操作数据库---往2个表里写数据,刚好写完A表,将要往B表写的那一刻,方法中断了,而B表里有和A表关联的信息(如外外键),B表缺失外键信息,会引起混乱。此时,你的回滚数据库,要回滚到哪个点,就是问题了? 我想你该这样思考:既然调用了,那就等它执行完,让它做件“完整”的事,然后根据某些限制,决定是接受它做的这件事,还是放弃它做的这件事,这样,就在我们可控的范畴内了。 我们的一条完整的语句,一个方法,都是一个“原子操作”,硬要拆开这个原子操作,就会有难度,等待高手解答
  • 打赏
  • 举报
回复
你随便写一个方法、调用这个方法,请问你如何让它(执行着的)立即结束、不继续执行? 你原来怎么写的,现在还怎么写呗。这种东西要是纠结,那么处处都能找出纠结的编程了。
瑞卡哥哥 2016-01-20
  • 打赏
  • 举报
回复
timer 下的方法是什么方法 如果是多线程启动的方法 那你只需要将这个线程强制结束掉就可以
早起晚睡 2016-01-20
  • 打赏
  • 举报
回复
引用 2 楼 fengcheng1104 的回复:
[quote=引用 1 楼 bjgzxx 的回复:] bool的变量判断是否为关的状态如果是关的状态跳出执行的方法就行了吧 只是我的理解
这个不行,如果stop的时候刚好在判断里面,还是会执行判断里面的内容。[/quote]那是逻辑错误 比如 stop在判断里面 怎么都会先执行判断再stop
Poopaye 2016-01-20
  • 打赏
  • 举报
回复
在方法的每一行后面加上 if(!((Timer)sender).Enable) return;
早起晚睡 2016-01-20
  • 打赏
  • 举报
回复
bool的变量判断是否为关的状态如果是关的状态跳出执行的方法就行了吧 只是我的理解
fengcheng1104 2016-01-20
  • 打赏
  • 举报
回复
引用 1 楼 bjgzxx 的回复:
bool的变量判断是否为关的状态如果是关的状态跳出执行的方法就行了吧 只是我的理解
这个不行,如果stop的时候刚好在判断里面,还是会执行判断里面的内容。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧