private void Awake() { var runner1 = TaskRunner.Create(this); var runner2 = TaskRunner.Create(this); var recursiveTask = runner1.Run( RecursiveIncrement() , start: true ); var updateTask = runner1.Forever(CustomUpdate); var scheduleTask = runner1.Schedule(2f, updateTask.Cancel); updateTask.Finished += cancelled => { UnityEngine.Debug.Log( "Update has finished. Was it cancelled? - " + cancelled ); }; runner1.Schedule(1f, runner1.Pause); runner2.Schedule(3f, runner1.Resume); }