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