/// <summary> /// Wraps the specified task awaiter. /// </summary> public static TaskAwaiter Wrap(SystemCompiler.TaskAwaiter awaiter) { // Access the task being awaited through reflection. var field = awaiter.GetType().GetField("m_task", BindingFlags.NonPublic | BindingFlags.Instance); var awaitedTask = (SystemTask)field?.GetValue(awaiter); return(new TaskAwaiter(awaitedTask, ref awaiter)); }