Invoke the method of the class in the nested anonymous method, compile error "Internal error 2022011001"
program Project1;
{$mode delphi}{$H+}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
Classes;
type
{ TTest }
TTest = class
private
FName: string;
public
constructor Create(const AName: string);
procedure PrintName;
procedure Execute;
end;
{ TTest }
constructor TTest.Create(const AName: string);
begin
FName := AName;
end;
procedure TTest.PrintName;
begin
Writeln(FName);
end;
procedure TTest.Execute;
begin
TThread.CreateAnonymousThread(
procedure
begin
TThread.CreateAnonymousThread(
procedure
begin
PrintName; // Error: Internal error 2022011001
end).Start;
end).Start;
end;
var
LTest: TTest;
begin
LTest := TTest.Create('Hello World');
try
LTest.Execute;
finally
LTest.Free;
end;
Readln;
end.