| 1234567891011121314151617181920212223242526272829303132333435363738 | using System;using System.Collections;using System.Runtime.CompilerServices;using System.Threading;using UnityEngine;namespace UnityAsync.Awaiters{	public struct YieldInstructionAwaiter : INotifyCompletion	{		static readonly SendOrPostCallback postCallback = state => ((Action)state)();		readonly YieldInstruction instruction;		public YieldInstructionAwaiter(YieldInstruction instruction)		{			this.instruction = instruction;		}		public void OnCompleted(Action continuation)		{			if(AsyncManager.InUnityContext)				AsyncManager.StartCoroutine(ContinuationCoroutine(continuation));			else				AsyncManager.UnitySyncContext.Send(postCallback, AsyncManager.StartCoroutine(ContinuationCoroutine(continuation)));		}		IEnumerator ContinuationCoroutine(Action continuation)		{			yield return instruction;			continuation();		}		public bool IsCompleted => false;		public void GetResult() { }	}}
 |