我写了一个递归搜索与窗体上的对象关联的文件的函数,我在单独的线程中运行此函数,所以UI线程不是问题。如何在多线程中调用递归函数
如何使用Synchronize,我调用一个具有参数的函数?
是递归函数调用Synchronize命令,我有合理的正确吗?
同步模式具有相同的返回所有呼叫?
我写了一个递归搜索与窗体上的对象关联的文件的函数,我在单独的线程中运行此函数,所以UI线程不是问题。如何在多线程中调用递归函数
如何使用Synchronize,我调用一个具有参数的函数?
是递归函数调用Synchronize命令,我有合理的正确吗?
同步模式具有相同的返回所有呼叫?
您可以使用匿名方式拨打电话:
procedure TMyThread.Execute;
var
MyParameter: Integer;
begin
MyParameter := 42;
Synchronize(
procedure
begin
MethodWithParameter(MyParameter);
end
);
end;
只为了这种可能性而爱匿名方法:-) –
你可以这样做:
...
FMyValue := Xyz;
Synchronize(MyProc);
...
Procedure TMyThread.MyProc;
begin
VclProc(FMyValue)
end;
我明白第一段,回答第二个是“你可以用” t,同步无参数“。问题的其余部分对我没有意义。 – GolezTrol
与主线程同步并调用带有1个或更多参数的函数,可以执行Synchronize(过程开始MyFunctionWith(Param1,Param2,ParamN); end); – ComputerSaysNo
感谢@GolezTrol,确保朋友们说可以实现的技巧。我没有想到!我认为Synchronize函数是参数化的。 :D – HamiD