16,747
社区成员




function TTask.GetStatus: TTaskStatus;
var
LFlags: TOptionStateFlags;
begin
LFlags := FState;
if TOptionStateFlag.Faulted in LFlags then
Result := TTaskStatus.Exception
else if TOptionStateFlag.Canceled in LFlags then
Result := TTaskStatus.Canceled
else if TOptionStateFlag.Complete in LFlags then
Result := TTaskStatus.Completed
else if TOptionStateFlag.ChildWait in LFlags then
Result := TTaskStatus.WaitingForChildren
else if TOptionStateFlag.CallbackRun in LFlags then
Result := TTaskStatus.Running
else if TOptionStateFlag.Started in LFlags then
Result := TTaskStatus.WaitingToRun
else
Result := TTaskStatus.Created;
end;