Example #1
0
        public bool UpdateTask(InvokerTaskInfo invokerTaskInfo, float dt)
        {
            bool removed = false;

            invokerTaskInfo.TotalRunTime += dt;

            if (!invokerTaskInfo.started)
            {
                if (invokerTaskInfo.TotalRunTime >= invokerTaskInfo.Delay)
                {
                    invokerTaskInfo.started = true;
                    invokerTaskInfo.Task(invokerTaskInfo.TotalRunTime - invokerTaskInfo.Delay);
                    invokerTaskInfo.TotalRunTime  -= invokerTaskInfo.Delay;
                    invokerTaskInfo.LastInvokeTime = invokerTaskInfo.TotalRunTime;
                    invokerTaskInfo.NextInvokeTime = invokerTaskInfo.Interval;
                }
            }
            else
            {
                if (invokerTaskInfo.TotalRunTime > invokerTaskInfo.NextInvokeTime)
                {
                    invokerTaskInfo.Task(invokerTaskInfo.TotalRunTime - invokerTaskInfo.LastInvokeTime);
                    invokerTaskInfo.LastInvokeTime  = invokerTaskInfo.TotalRunTime;
                    invokerTaskInfo.NextInvokeTime += invokerTaskInfo.Interval;
                }
            }

            if ((invokerTaskInfo.TotalRunTime >= invokerTaskInfo.cancelTime) &&
                (invokerTaskInfo.cancelTime > 0 && invokerTaskInfo.Interval != 0 || invokerTaskInfo.Interval == 0))
            {
                removed = true;
            }

            return(removed);
        }
Example #2
0
            public InvokerTaskInfo GetCleanTask()
            {
                InvokerTaskInfo taskInfo;

                if ((taskInfo = _invokeTasks.FirstOrDefault(t => t.active == false)) == null)
                {
                    taskInfo = new InvokerTaskInfo();
                    _invokeTasks.Add(taskInfo);
                }
                else
                {
                    taskInfo.Reset();
                }

                return(taskInfo);
            }
Example #3
0
 public void StopTask(InvokerTaskInfo taskInfo)
 {
     taskInfo.active = false;
 }
Example #4
0
 private void StopTask(InvokerTaskInfo taskInfo)
 {
     _tasks.Remove(taskInfo);
     _tasksCache.StopTask(taskInfo);
 }
Example #5
0
 public void ReturnTask(InvokerTaskInfo taskInfo)
 {
     StopTask(taskInfo);
 }