16,748
社区成员
发帖
与我相关
我的任务
分享
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;