gpt4 book ai didi

multithreading - 在主线程中调用 TThread.Synchronize

转载 作者:行者123 更新时间:2023-12-03 15:51:22 24 4
gpt4 key购买 nike

窃取 Uwe Raabe 的文章 Synchronize and Queue with Parameters我这样做:

if GetCurrentThreadID = MainThreadID then
FDataLogger(IntToStr(lNrItems) + ' elements:')
else
TThread.Synchronize(nil,
procedure
begin
FDataLogger(IntToStr(lNrItems) + ' elements:');
end);

但如果我只是

  TThread.Synchronize(nil,
procedure
begin
FDataLogger(IntToStr(lNrItems) + ' elements:');
end);

这似乎也有效。

由于第一个构造会导致更多代码,区分主线程真的有很多好处吗?

最佳答案

尽管文档警告您这样做,但 TThread.Synchronize 中的实际代码类似于所示的包装代码。所以我非常确定您可以使用较短的版本。

当我写那篇文章时,也许我也被文档误导了(或者在古代可能被 Delphi 5 左右的这种行为所困扰)。

关于multithreading - 在主线程中调用 TThread.Synchronize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60737872/

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