16,748
社区成员
发帖
与我相关
我的任务
分享
///思考一个程序,程序中有几个方案,想将这些方案通过线程初始化参数的形式传递进去,
//但是这些方案的字段存在共有的,也存在不一样的:如何写呢?
//比如:
//共有参数:
Fname:string;
FType:TSchemeType;
//方案1:
procedure Run;
//方案2:
procedure Car;
//方案3:
procedure airLine;
//线程初始化时将方案传递进去。
WorkThread.Create(Scheme); //这里的Scheme如何定义数据类型,才能兼容以上的几种方案呢?
//如果可以,请给个例子,谢谢,非常感谢。
type
TMyParamStru = record
RunProc: TProcedure;
OtherParam: array [0..1] of Integer;
end;
TWorkThread = class(TThread)
private
FInitPm: TMyParamStru;
protected
procedrue Execute; override;
public
constructor Create(InitPm: TMyParamStru);
end;
constructor TWorkThread.Create(InitPm: TMyParamStru);
begin
FInitPm:= InitPm;
inherited Create(True, True);
end;
procedure TWorkThread.Execute;
begin
if Assigned(FInitPm.RunProc) then begin
FInitPm.RunProc;
end;
end;