예제 #1
0
        /// <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));
        }