public void StartTreadTask(TaskFunc fun, FinCB cb = null, object param = null) { TaskObj t = GetTask(); t.Start(fun, cb, param); m_BusyTasks.Add(t); }
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); }); }
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); }); }
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); }); }
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); }); }
public void AddObservable(IObservable <Unit> observable, float?weight = null) { if (observable == null) { return; } TaskFunc task = observable.ReportOnCompleted; Add(task, weight); }
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); }
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); }
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(); }
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); }
public DelegateTask(TaskFunc @delegate, string name, TaskConfiguration?configuration) { _delegate = @delegate ?? throw new ArgumentNullException(nameof(@delegate)); Name = name ?? throw new ArgumentNullException(nameof(name)); _configuration = configuration; }
public Task() { this.displayName = string.Empty; this.weight = 1; this.task = null; }
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; }
public Tasker AddFinalTask(TaskFunc func) { return(AddFinalTask(new Task(func))); }
public Tasker AddTask(TaskFunc func, int weight = 1) { tasks.Enqueue(new Task(func, weight)); return(this); }
public void Add(TaskFunc taskFunc, float?weight = null) => Add(new TaskWeightPair(taskFunc, weight));
public TaskWeightPair(TaskFunc task, float?weight = null) { Task = task; Weight = weight; }