Знаю, тема звучит ужасно)
У меня есть процедура "Пауза"
procedure TFmMain.Pause(pause: Integer);
var
i : integer;
begin
for i := 1 to round(pause * 10) do
sleep(100);
end;
Иногда мне нужно выполнять её в основном потоке, а иногда - из дочернего.
Если выполняется из дочернего - я бы хотел анализировать поле Terminated:
procedure TMyThread.Pause(pause: Integer);
var
i : integer;
begin
for i := 1 to round(pause * 10) do
begin
if terminated then break;
sleep(100);
end;
end;
Соответственно, мы имеем примерно два одинаковых описания примерно одной и той же процедуры.
У меня таких процедур и функций много (тех, которые нужно выполнять и в основном потоке и в дочернем).
И все они отличаются только наличием/отсутствием анализа поля terminated.
Может быть есть какой нибудь хитрый трюк ООП, который бы позволил определять контекст выполнения и не описывать все по 2 раза?