public MainThreadAwaiter GetAwaiter() { var awaiter = new MainThreadAwaiter(); MainThreadUtil.Run(CoroutineWrapper(this, awaiter)); return(awaiter); }
public AwaiterWrapper(MainThreadAwaiter awaiter) { isCompleted = () => awaiter.IsCompleted; onCompleted = c => awaiter.OnCompleted(c); getResult = () => awaiter.GetResult(); }
public static IEnumerator CoroutineWrapper(IEnumerator theWorker, MainThreadAwaiter awaiter) { yield return(theWorker); awaiter.Complete(); }
public AwaiterWrapper(MainThreadAwaiter awaiter) { isCompleted = () => awaiter.IsCompleted; onCompleted = c => awaiter.OnCompleted(c); getResult = () => awaiter.GetResult(); }