子线程中有一函数,可不可以在其父线程中的Execute中调用此函数呢?(100分)

  • 主题发起人 主题发起人 lkdbdlkq
  • 开始时间 开始时间
L

lkdbdlkq

Unregistered / Unconfirmed
GUEST, unregistred user!
Tchild=class(TThread)
private
public
end;

Ta= class(tchild)
public
procedure bbb;virtual;
constructor Create;
procedure Execute;override;
end;

tb=class(ta)
private
procedure bbb;
public
end;


constructor Ta.Create;
var
iniFile: TiniFile;
begin

inherited Create(True);
FreeOnTerminate := True;
Resume;
end;

procedure ta.Execute;
begin

bbb;
end;


c:=tb.create;

ta下面的子线程类tb的一个实例c创建执行,因为tb自身没有重写create 及execute函数,所以其create及execcute将执行父类中ta的这两个方法,如何在执行到ta.execcute函数
的时候,调用执行其子类tb中的实际函数bbb呢?

tb.create;
 
好像应该是tb的定义中
procedure bbb;
override;吧。
 
没听过子线程一说 lz强悍。膜拜中
 
2楼说的没错,只要override就可以了。
这个问题不是多线程问题,是类的多态问题
 
tb=class(ta)
public
procedure bbb;
override;
end;
 

Similar threads

后退
顶部