当前位置:  开发笔记 > 开发工具 > 正文

调用程序"延迟"的最佳方法是什么?

如何解决《调用程序"延迟"的最佳方法是什么?》经验,为你挑选了1个好方法。

有两个程序,A1和A2,它们都在代码中调用函数B:

function B: boolean;
begin
  // do other stuff
end;

procedure A1;
begin
  // do stuff
  if b then
    ...
  // do stuff
end;

procedure A2;
begin
  // do stuff
  if b then
    A1; // <- how to call A1 "delayed"?
  // do stuff
end;

如果A2中的条件为真,则必须调用过程A1,但是当A2仍在运行时会发生这种情况,这是我不想要的.

应该发生的是:如果A2中的条件为真,则应该完成A2,并且在离开A2之后应该调用过程A1.

一个丑陋的解决方案是设置一个定时器,在延迟确认A2完成后调用A1.

但必须有更好的方法,对吗?

编辑:在我的情况下A1和A2是事件,所以他们没有被代码调用,我不能只是在A2完成后从调用过程调用A1.



1> dwc..:

鉴于你的约束,听起来你想在返回之前调用它PostMessage作为最后一件事A2.该PostMessage参数应设置使触发A1事件.唯一要担心的是竞争条件,但我不确定这将是Windows消息队列的问题.

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有