public static TimedEnumeration.CallAgain CallAfter(float seconds, string message) => new TimedEnumeration.CallAgain(task: Task.Delay(TimeSpan.FromMilliseconds(QcMath.Seconds_To_Miliseconds(seconds))), message: message);
public static IEnumerator Coroutine_Test() { for (int i = 0; i < 5; i++) { Debug.Log("{0}: Frame: {1}".F(i, Time.frameCount)); yield return(CallAgain("Asking to execute this function again if we have enough time this frame")); // Communication token } for (int i = 0; i < 5; i++) { Debug.Log("With wait {0}. Frame: {1}".F(i, Time.frameCount)); yield return(new TimedEnumeration.CallAgain(task: Task.Delay(TimeSpan.FromMilliseconds(QcMath.Seconds_To_Miliseconds(0.3f))), message: "Sending communication token that will ask to delay execution by 0.3 seconds")); // yield return CallAfter(0.3f, "Sending communication token that will ask to delay execution by 0.3 seconds"); } Debug.Log("Will start Nested Coroutine. Works only if using MonoBehaviour's StartCoroutine"); yield return(NestedCoroutine_Test()); Debug.Log("Calculating Pi"); string pi = ""; yield return(CallAfter_Thread(() => { pi = CalculatePi_Test(10000); }, "Now we are calculating Pi in a task")); // yield return CallAgain_StoreReturnData(pi); Debug.Log("Done calculating Pi : {0}".F(pi)); }