gpt4 book ai didi

delphi - 调用过程 "delayed"的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-03 20:20:14 26 4
gpt4 key购买 nike

有两个过程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。

最佳答案

考虑到您的限制,听起来您希望在返回之前调用 PostMessage 作为 A2 中的最后一件事。应设置 PostMessage 参数以触发 A1 事件。唯一要担心的是竞争条件,但我不确定这是否会成为 Windows 消息队列的问题。

关于delphi - 调用过程 "delayed"的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/588102/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com