求助:Delphi想实现在规定时间内做某些处理,但无论是否成功到时间都停止去做其他的程序处理,如何实现?

我知道用timer,就是如何通知正在执行的这段代码,停止吧,不要执行了,呵呵,麻烦大家了... 我知道用timer,就是如何通知正在执行的这段代码,停止吧,不要执行了,呵呵,麻烦大家了 展开
 我来答
billswhot
2012-11-28 · TA获得超过1015个赞
知道小有建树答主
回答量:1182
采纳率:0%
帮助的人:674万
展开全部
这个其实很复杂的!因为有时候系统资源占用过大会导致停止响应的!尤其是死循环代码!我的建议是开线程,然后外部终止线程,但是线程这个东西其实也不可靠的!最好的办法其实还是用timer
设全局变量控制timer里的代码,每次timer执行都检查这个全局变量的值。如果有时间要求那就加入判断时间的代码。这是比较可靠的办法。当然了你的机器可靠性要高,长期运行的话应该买专业服务器。如果你只是短暂运行推荐用线程。如果长期运行推荐timer
syht2000
高粉答主

2012-11-28 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
这个原本其实并不是用timer,而是用线程,也就是启动线程的时候等待一个固定的时间,之后就做其它的操作(当然你在线程中可以对某个变量赋值)之后可以通过检测这个变量来判断是否是按时完成的。要求不高的时候用timer也是可以的,比如说你要做的那个处理是一个循环,那就用一个公用的变量比如flag,在处理之前设定它为true,在那个处理的循环中检查是不是true,如果是就执行,否则就出循环,在timer中到时间后就设定这个flag为false,这样就可以通知那个处理过程了。
后面这样做的问题就是:如果在循环执行一次的时间比较长,比如10秒,那么即使时间到了,这个操作是不会中止的,只有当操作完了,进入下一个循环的时候,才会检查到flag的变化。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
RedBaronVIP
2012-11-29 · TA获得超过1147个赞
知道小有建树答主
回答量:655
采纳率:0%
帮助的人:243万
展开全部
先创建一个线程,负责事务处理,同时在主程序创建一个Timer计时器。线程运行后,Timer开始计时,时间一到,就把线程挂起。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fox157
2012-11-28 · 超过11用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:31.5万
展开全部
最好使用多线程来处理,可以找相关的书看看,不难。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式