public static void SyncWait(IEnumerator runner) { var coroutine = new CoRoutine(runner); while (coroutine.Pump()) { } }
public static T SyncWaitGet <T>(IEnumerator runner) { var coroutine = new CoRoutine(runner); while (coroutine.Pump()) { } return((T)coroutine.ReturnValue); }
public static void SyncWaitWithTimeout(IEnumerator runner, float timeout) { var startTime = DateTime.UtcNow; var coroutine = new CoRoutine(runner); while (coroutine.Pump()) { if ((DateTime.UtcNow - startTime).TotalSeconds > timeout) { throw new CoRoutineTimeoutException(); } } }
public static IEnumerator <T> Wrap <T>(IEnumerator runner) { var coroutine = new CoRoutine(runner); while (coroutine.Pump()) { yield return(default(T)); } if (coroutine.ReturnValue != null) { Assert.That(coroutine.ReturnValue.GetType().DerivesFromOrEqual <T>(), "Unexpected type returned from coroutine! Expected '{0}' and found '{1}'", typeof(T).Name, coroutine.ReturnValue.GetType().Name); } yield return((T)coroutine.ReturnValue); }
public IEnumerator <T> ProcessPrjCommandForResult <T>(string statusName, IEnumerator prjTask) { return(CoRoutine.Wrap <T>(ProcessPrjCommand(statusName, prjTask))); }
public IEnumerator <int> PromptForUserChoice( string question, string[] choices, string title = null, string styleOverride = null, int enterChoice = -1, int exitChoice = -1) { return(CoRoutine.Wrap <int>( PromptForUserChoiceInternal(question, choices, title, styleOverride, enterChoice, exitChoice))); }
IEnumerator <InstallReleaseUserChoices> CheckShouldInstall(ReleaseInfo releaseInfo) { return(CoRoutine.Wrap <InstallReleaseUserChoices>(CheckShouldInstallInternal(releaseInfo))); }