Try to expedite the task if succeded it will run immediately but it will not set the completed state until the scheduler has executed it, because the scheduler still holds a reference. to check for completion in the context of expediting use WasExpedited. The TaskHandle canot be reused until IsCompleted returns true.