private void ScheduledRun(object call)
        {
            TaskEvent te = events[call.ToString()].Clone() as TaskEvent;
            KeyValuePair <bool, TaskEvent> result = new KeyValuePair <bool, TaskEvent>(false, te);

            try
            {
                result = Actuators[te.TaskActuator](te);
            }
            catch
            {
            }
            finally
            {
                events.TryRemove(call.ToString(), out te);
                events.TryAdd(call.ToString(), result.Value);
            }
        }
 public abstract KeyValuePair <bool, TaskEvent> Run(TaskEvent TaksEvent);
 public abstract KeyValuePair<bool, TaskEvent> Run(TaskEvent TaksEvent);