Was heißt "nicht auf Status zugreifen können"? Wenn er noch nicht gestartet wurde ist er entweder
TTaskStatus.Created
oder
TTaskStatus.WaitingToRun
.
"Warten bis der Task beendet ist" entspricht
WaitFor(..)
:
Delphi-Quellcode:
const
runningStates = [TTaskStatus.Running, TTaskStatus.WaitingForChildren];
begin
if Assigned(asyncRefreshTask) then
begin
asyncRefreshTask.Cancel();
try
if (asyncRefreshTask.Status in runningStates) then
asyncRefreshTask.Wait(delayTimeMs);
except
// make a smug face
end;
asyncRefreshTask := nil;
end;
end;