在 Delphi 中,可以通过以下几种方式传递参数给线程:
- 使用线程的构造函数传递参数:在创建线程对象时,可以直接在构造函数中传递参数。例如:
type
TMyThread = class(TThread)
private
FParam: Integer;
protected
procedure Execute; override;
public
constructor Create(Param: Integer);
end;
constructor TMyThread.Create(Param: Integer);
begin
inherited Create(True);
FParam := Param;
end;
procedure TMyThread.Execute;
begin
// 使用 FParam 进行操作
end;
然后,可以通过以下方式创建并运行线程:
var
MyThread: TMyThread;
begin
MyThread := TMyThread.Create(123);
MyThread.Start;
end;
- 使用线程的属性传递参数:可以在线程对象创建后,通过设置线程的属性来传递参数。例如:
type
TMyThread = class(TThread)
private
FParam: Integer;
protected
procedure Execute; override;
public
property Param: Integer read FParam write FParam;
end;
procedure TMyThread.Execute;
begin
// 使用 FParam 进行操作
end;
然后,可以通过以下方式创建并运行线程:
var
MyThread: TMyThread;
begin
MyThread := TMyThread.Create(True);
MyThread.Param := 123;
MyThread.Start;
end;
- 使用线程的参数化构造函数传递参数:在 Delphi 10.4 之后的版本中,可以使用参数化构造函数来传递参数。例如:
type
TMyThread = class(TThread)
private
FParam: Integer;
protected
procedure Execute; override;
public
constructor Create(Param: Integer);
end;
constructor TMyThread.Create(Param: Integer);
begin
inherited Create(True);
FParam := Param;
end;
procedure TMyThread.Execute;
begin
// 使用 FParam 进行操作
end;
然后,可以通过以下方式创建并运行线程:
var
MyThread: TMyThread;
begin
MyThread := TMyThread.Create(123);
MyThread.Start;
end;
以上是几种常见的传递参数给 Delphi 线程的方式,可以根据具体的需求选择适合的方式。