/Spinning on IsDone is not acceptable( see EnsureCompletion ), but it is ok to check once a frame. /Ensure the task is done, doing the task on the current thread if it has not been started, waiting until completion in all cases.     MyTask->EnsureCompletion();