public static AsyncDispatch Dispatch(Action task) { lock (dispatchQueue) { AsyncDispatch dispatch = new AsyncDispatch(); dispatchQueue.Enqueue(() => { task(); dispatch.FinishedDispatch(); }); return(dispatch); } }
static IEnumerator DispatchCorotine(IEnumerator dispatched, AsyncDispatch tracker) { yield return(dispatched); tracker.FinishedDispatch(); }