1

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

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

递归函数是否调用了 Synchronize 命令,我有合理的正确性?

同步模式是否有相同的返回所有调用?

4

2 回答 2

6

您可以使用匿名方法进行调用:

procedure TMyThread.Execute;
var
  MyParameter: Integer;
begin
  MyParameter := 42;
  Synchronize(
    procedure
    begin
      MethodWithParameter(MyParameter);
    end
    );
end;
于 2012-12-28T18:42:01.667 回答
2

您可以执行以下操作:

...
FMyValue := Xyz;
Synchronize(MyProc);
...

Procedure TMyThread.MyProc;
begin
  VclProc(FMyValue)
end;
于 2012-12-28T18:26:43.667 回答