如何在多线程中调用递归函数

Ham*_*miD 1 delphi multithreading synchronization delphi-xe3

我编写了一个函数来递归搜索与表单上的对象相关联的文件,我在一个单独的线程中运行此函数,因此UI线程不是问题.

我如何使用Synchronize,我调用一个具有参数的函数?

递归函数调用Synchronize命令,我有合理的正确吗?

同步模式具有相同的返回所有呼叫?

Uwe*_*abe 6

您可以使用匿名方法拨打电话:

procedure TMyThread.Execute;
var
  MyParameter: Integer;
begin
  MyParameter := 42;
  Synchronize(
    procedure
    begin
      MethodWithParameter(MyParameter);
    end
    );
end;
Run Code Online (Sandbox Code Playgroud)