示例#1
0
 /// <summary>
 /// Resumes every job tagged with 'tag(s)'.
 /// </summary>
 /// <param name="tag">The tag(s) of the jobs to be resumed.</param>
 public static void Resume(params string[] tags)
 {
     for (int i = 0; i < tags.Length; i++)
     {
         ScheduleBridge.Resume(SuperInvokeTag.GetInstance(tags[i]));
     }
 }
示例#2
0
        private static IJobRepeat ActualRunRepeat(Action method, string tag, RepeatSettings repeatSettings)
        {
            CheckMethod(method);
            CheckDelay(repeatSettings.delay);

            JobRepeat jobRepeat = null;

            if (repeatSettings.repeats == INFINITY || repeatSettings.repeats > 0)                   //if repeats == 0 it does nothing

            {
                jobRepeat = new JobRepeat()
                {
                    TotalRepeatsNumber = repeatSettings.repeats
                };

                Sequence sequence = Sequence.MakeInstance();
                sequence.SetGroupTag(SuperInvokeTag.GetInstance(tag));
                sequence.AddSingleTask(SingleTask.MakeInstance(method, 0, tag));
                sequence.SetIterativeMode(repeatSettings);
                sequence.SetJob(jobRepeat);

                ScheduleBridge.Schedule(sequence);
            }

            return(jobRepeat);
        }
示例#3
0
        /// <summary>
        /// Kills every job except those tagged with 'tag(s)'.
        /// </summary>
        /// <param name="tags">The tag(s) of the jobs that must remain alive.</param>
        public static void KillAllExcept(params string[] tags)
        {
            List <SuperInvokeTag> tagList = new List <SuperInvokeTag>();

            foreach (var tag in tags)
            {
                tagList.Add(SuperInvokeTag.GetInstance(tag));
            }
            ScheduleBridge.KillAllExcept(tagList.ToArray());
        }
示例#4
0
        public static SingleTask MakeInstance(Action method, float delayTime, string groupTag)
        {
            SingleTask singleTask = SuperInvokePoolSettings.PoolManager.GetInstance <SingleTask>();

            singleTask.SetTask(method, delayTime);

            if (groupTag != null)
            {
                singleTask.groupTag = SuperInvokeTag.GetInstance(groupTag);
            }

            return(singleTask);
        }