Безопасно ли переопределять метод Free ?Я спрашиваю, потому что я хотел бы использовать что-то подобное.Я знаю, что очень уродливо использовать TerminateThread , но в моем случае очень важно немедленно завершить процесс всеми его потоками.
Я видел метод __free, объявленный в System.pas, но я не знаю, имеет ли он какое-то отношение к методу TObject.Free , и поэтому я спрашиваю, безопасно ли это.
type
TMyThread = class(TThread)
private
destructor Destroy; override;
public
procedure Execute; override;
constructor Create;
procedure Free(const Force: Boolean = False); // is it safe to use this?
end;
procedure TMyThread.Free(const Force: Boolean = False);
begin
if not Force then
begin
Terminate;
WaitFor;
end
else
TerminateThread(Handle, 0);
inherited Free;
end;
destructor TMyThread.Destroy;
begin
// free resources etc.
inherited Destroy;
end;
Спасибо