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

我知道用timer,就是如何通知正在执行的这段代码,停止吧,不要执行了,呵呵,麻烦大家了... 我知道用timer,就是如何通知正在执行的这段代码,停止吧,不要执行了,呵呵,麻烦大家了 展开
 我来答
billswhot
2012-11-28 · TA获得超过1015个赞
知道小有建树答主
回答量:1182
采纳率:0%
帮助的人:672万
展开全部
这个其实很复杂的!因为有时候系统资源占用过大会导致停止响应的!尤其是死循环代码!我的建议是开线程,然后外部终止线程,但是线程这个东西其实也不可靠的!最好的办法其实还是用timer
设全局变量控制timer里的代码,每次timer执行都检查这个全局变量的值。如果有时间要求那就加入判断时间的代码。这是比较可靠的办法。当然了你的机器可靠性要高,长期运行的话应该买专业服务器。如果你只是短暂运行推荐用线程。如果长期运行推荐timer
上海巴鲁图工程机械科技有限公司_
2022-05-15 广告
光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。光电编码器每转输出60(我们用老板没有说)个脉冲,五线制。其中两根为电源线,三根为脉冲线(A相、B相、Z)。电源的工作电压为 (+5~+24V)直流电源。光... 点击进入详情页
本回答由上海巴鲁图工程机械科技有限公司_提供
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%
帮助的人:241万
展开全部
先创建一个线程,负责事务处理,同时在主程序创建一个Timer计时器。线程运行后,Timer开始计时,时间一到,就把线程挂起。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fox157
2012-11-28 · 超过11用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:31.4万
展开全部
最好使用多线程来处理,可以找相关的书看看,不难。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式