コード例 #1
0
ファイル: TaskManager.cs プロジェクト: lightway82/komok
    private void ProcessingAddedTask(ITask task, TaskPriorityEnum taskPriority)
    {
        switch (taskPriority)
        {
        case TaskPriorityEnum.Default:
            _tasks.Add(task);
            break;

        case TaskPriorityEnum.High:
            _tasks.Insert(0, task);
            break;

        case TaskPriorityEnum.Interrupt:
            if (_currentTask != null && _currentTask.Priority != TaskPriorityEnum.Interrupt)
            {
                _currentTask.Stop();
            }
            _currentTask = task;
            task.Subscribe(TaskQueueProcessing).Start();
            break;
        }

        if (_currentTask != null)
        {
            return;
        }
        _currentTask = GetNextTask();
        _currentTask?.Subscribe(TaskQueueProcessing).Start();
    }
コード例 #2
0
ファイル: TaskManager.cs プロジェクト: lightway82/komok
    public void AddTask(IEnumerator taskAction, Action callback,
                        TaskPriorityEnum taskPriority = TaskPriorityEnum.Default)
    {
        var task = Task.Create(taskAction, coroutineHost, taskPriority).Subscribe(callback);

        ProcessingAddedTask(task, taskPriority);
    }
コード例 #3
0
 public int TaskCount(TaskPriorityEnum priority)
 {
     return(DBSet.Count(x => x.Priority >= priority && !x.Finished));//
 }
コード例 #4
0
 public Task(IEnumerator taskAction, MonoBehaviour coroutineHost, TaskPriorityEnum priority = TaskPriorityEnum.Default)
 {
     _coroutineHost = coroutineHost;
     _taskPriority  = priority;
     _taskAction    = taskAction;
 }
コード例 #5
0
 public static Task Create(IEnumerator taskAction, MonoBehaviour coroutineHost, TaskPriorityEnum priority = TaskPriorityEnum.Default)
 {
     return(new Task(taskAction, coroutineHost, priority));
 }
コード例 #6
0
 public static Task Create(IEnumerator taskAction, MonoBehaviour behaviour, TaskPriorityEnum priority = TaskPriorityEnum.Default)
 {
     return(new Task(taskAction, behaviour, priority));
 }
コード例 #7
0
        public void AddTask(IEnumerator taskAction, TaskPriorityEnum taskPriority = TaskPriorityEnum.Default)
        {
            var task = Task.Create(taskAction, _instance, taskPriority);

            ProcessingAddedTask(task, taskPriority);
        }