在Delphi 10.3中,我正在创建TThread的子类。创建子类时,出现访问冲突异常。
当“ FSuspended:=不是FExternalThread;”时,在System.Classes的TThread.Create中发生冲突。正在执行。
这是给出错误的代码。
unit TestThread;
interface
uses System.Classes;
type
TTestThread = class(TThread)
private
protected
procedure Execute; override;
public
constructor Create();
destructor Destroy(); override;
end;
procedure TestThreadClick();
implementation
constructor TTestThread.Create();
begin
//inherited;
//inherited Create;
inherited Create(True);
FreeOnTerminate := False;
end;
destructor TTestThread.Destroy();
begin
end;
procedure TTestThread.Execute;
begin
end;
procedure TestThreadClick();
var
TestThread: TTestThread;
begin
TestThread.Create();
TestThread.Start();
TestThread.Destroy();
end;
end.
继承;,继承Create; ,继承Create(True); 指令均给出访问冲突。
如果我使用构造函数覆盖Create(); override ; 编译器给出 E2170无法覆盖非虚拟方法,所以这不是解决方案。
有人知道这里出什么问题吗?