Example #1
0
        public void StartTreadTask(TaskFunc fun, FinCB cb = null, object param = null)
        {
            TaskObj t = GetTask();

            t.Start(fun, cb, param);

            m_BusyTasks.Add(t);
        }
Example #2
0
 public static TaskFunc TaskIf(Func <bool> condition, TaskFunc trueTask, TaskFunc falseTask = null)
 {
     return((Tasker tasker, Object syncObject) =>
     {
         return (condition()) ?
         trueTask(tasker, syncObject) :
         (falseTask ?? Stub)(tasker, syncObject);
     });
 }
Example #3
0
 public static TaskFunc TaskIf(TaskFunc condition, TaskFunc successTask, TaskFunc failureTask = null)
 {
     return((Tasker tasker, Object syncObject) =>
     {
         return (condition(tasker, syncObject) == Conclusion.Success) ?
         successTask(tasker, syncObject) :
         (failureTask ?? Stub)(tasker, syncObject);
     });
 }
Example #4
0
 public static TaskFunc TaskIf(TaskFunc condition, TaskFunc successTask, TaskFunc failureTask = null)
 {
     return((Tasker tasker, Object syncObject) =>
     {
         TaskFunc task = condition(tasker, syncObject) == Conclusion.Success ? successTask : (failureTask ?? Stub);
         Trace.WriteLine($"Forwarding task: {Regex.Match(task.Method.DeclaringType.Name, @"[^.]+$").Value + "." + task.Method.Name}");
         return task(tasker, syncObject);
     });
 }
Example #5
0
 public static TaskFunc TaskIf(Func <bool> condition, TaskFunc trueTask, TaskFunc falseTask = null)
 {
     return((Tasker tasker, Object syncObject) =>
     {
         TaskFunc task = (condition()) ? trueTask : (falseTask ?? Stub);
         Trace.WriteLine($"Forwarding task: {Regex.Match(task.Method.DeclaringType.Name, @"[^.]+$").Value + "." + task.Method.Name}");
         return task(tasker, syncObject);
     });
 }
Example #6
0
        public void AddObservable(IObservable <Unit> observable, float?weight = null)
        {
            if (observable == null)
            {
                return;
            }
            TaskFunc task = observable.ReportOnCompleted;

            Add(task, weight);
        }
Example #7
0
        public void AddCoroutine(Func <IProgress <float>, IEnumerator> coroutine, float?weight = null)
        {
            if (coroutine == null)
            {
                return;
            }
            TaskFunc task = progress => coroutine(progress)
                            .ToObservable().ReportOnCompleted(progress);

            Add(task, weight);
        }
Example #8
0
        public void AddCoroutine <T1, T2, T3, T4>(Func <T1, T2, T3, T4, IProgress <float>, IEnumerator> coroutine,
                                                  T1 arg1, T2 arg2, T3 arg3, T4 arg4, float?weight = null)
        {
            if (coroutine == null)
            {
                return;
            }
            TaskFunc task = progress => coroutine(arg1, arg2, arg3, arg4, progress)
                            .ToObservable().ReportOnCompleted(progress);

            Add(task, weight);
        }
Example #9
0
        public void Start(TaskFunc fun, FinCB cb = null, object param = null)
        {
            if (m_Thread == null)
            {
                m_Thread = new Thread(TaskUpdate);
            }

            m_Func   = fun;
            m_cb     = cb;
            m_Param  = param;
            Finished = false;

            m_Thread.Start();
        }
Example #10
0
        public void AddObservable <T>(IObservable <T> observable, float?weight = null)
        {
            if (observable == null)
            {
                return;
            }
            var unitObservable = observable as IObservable <Unit>;

            if (unitObservable != null)
            {
                AddObservable(unitObservable, weight);
                return;
            }
            TaskFunc task = progress => observable.AsUnitObservable().ReportOnCompleted(progress);

            Add(task, weight);
        }
Example #11
0
 public DelegateTask(TaskFunc @delegate, string name, TaskConfiguration?configuration)
 {
     _delegate      = @delegate ?? throw new ArgumentNullException(nameof(@delegate));
     Name           = name ?? throw new ArgumentNullException(nameof(name));
     _configuration = configuration;
 }
Example #12
0
 public Task()
 {
     this.displayName = string.Empty;
     this.weight      = 1;
     this.task        = null;
 }
Example #13
0
 public Task(TaskFunc task, int weight = 1)
 {
     this.displayName = Regex.Match(task.Method.DeclaringType.Name, @"[^.]+$").Value + "." + task.Method.Name;
     this.weight      = weight;
     this.task        = task;
 }
Example #14
0
 public Tasker AddFinalTask(TaskFunc func)
 {
     return(AddFinalTask(new Task(func)));
 }
Example #15
0
 public Tasker AddTask(TaskFunc func, int weight = 1)
 {
     tasks.Enqueue(new Task(func, weight));
     return(this);
 }
Example #16
0
 public void Add(TaskFunc taskFunc, float?weight = null) => Add(new TaskWeightPair(taskFunc, weight));
Example #17
0
 public TaskWeightPair(TaskFunc task, float?weight = null)
 {
     Task   = task;
     Weight = weight;
 }