Пример #1
0
    public IEnumerator TestUnityWait()
    {
        var coroutineMonoRunner = new CoroutineMonoRunner("test1");
        ITaskRoutine <IEnumerator> taskRoutine = TaskRunner.Instance.AllocateNewTaskRoutine(coroutineMonoRunner);

        taskRoutine.SetEnumeratorProvider(new WaitForSecondsUnity().GetEnumerator);


        taskRoutine.Start();
        DateTime then = DateTime.Now;

        while (taskRoutine.isRunning == true)
        {
            yield return(null);
        }
        coroutineMonoRunner.Dispose();
        var totalSeconds = (DateTime.Now - then).TotalSeconds;

        Assert.That(totalSeconds, Is.InRange(0.9, 1.1));
    }
 // Use this for initialization
 void Start()
 {
     _taskRountine = TaskRunner.Instance.AllocateNewTaskRoutine();
     _taskRountine.SetEnumeratorProvider(ResetTaskAndRun);     //The Task routine is pooled! You could have used Start directly, but you need to use SetEnumeratorProvider if you want restart the TaskRoutine later
     _taskRountine.Start();
 }