gpt4 book ai didi

delphi - 如何在firemonkey下将一些代码排队在下一个周期执行?

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

在firemonkey下,当我想在当前“循环”之后执行一些代码时,我喜欢这样:

 TThread.createAnonymousThread(
procedure
begin
TThread.queue(nil,
procedure
begin
domycode
end);
end).start;

因为如果我们在mainThread中,那么TThread.queue将立即执行代码。我很好奇除了使用线程之外,他们是否没有其他方法来做到这一点?

最佳答案

在 10.2 东京,一个新的 TThread.ForceQueue()方法已添加到地址 RSP-15427 (添加一个选项,让 TThread.Queue() 在被主 UI 线程调用时异步运行):

TThread.ForceQueue(nil,
procedure
begin
domycode
end
);

不需要线程。

在东京之前,如果您不想使用匿名线程调用 TThread.Queue(),则必须重新编写代码。例如,您可以使用 PostMessage() 向自己发布一条延迟消息。或PostThreadMessage() ,然后在消息处理程序中执行工作。或使用 TApplication(Events).OnIdle事件,就像 GolezTrol 建议的那样。

关于delphi - 如何在firemonkey下将一些代码排队在下一个周期执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44687156/

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