Esempio n. 1
0
        protected void IncrementProgress(int percentage)
        {
            log.Debug($"Task '{Title}' (Id: {TaskId}) - Progression: {ProgressionPercentage}");
            ProgressionPercentage = percentage;
            OnProgressChanged?.Invoke(this, percentage);

            if (percentage == 100)
            {
                OnTaskFinished?.Invoke(this, System.EventArgs.Empty);
            }
        }
Esempio n. 2
0
        private void UpdateProgressBar(ProgressBarModel pb)
        {
            ProgressBar.Value      = pb.Value;
            ProgressBar.Content    = pb.Content;
            ProgressBar.Visibility = pb.Visibility;

            if (ProgressBar.Visibility == Visibility.Visible)
            {
                OnTaskStarted?.Invoke();
            }
            if (ProgressBar.Visibility == Visibility.Hidden)
            {
                OnTaskFinished?.Invoke();
            }
        }
Esempio n. 3
0
 protected void OnUnpackFinished(bool bSuccessful)
 {
     OnTaskFinished?.Invoke(this, bSuccessful);
 }
Esempio n. 4
0
 public virtual ITask Execute()
 {
     OnTaskFinished?.Invoke(this, System.EventArgs.Empty);
     return(this);
 }
Esempio n. 5
0
        private void TaskThreadHandler()
        {
            while (!bExit)
            {
                //当前没有任务
                if (taskQueue.Count == 0)
                {
                    Thread.Sleep(1000);
                    continue;
                }
                var currentTask = taskQueue.Dequeue();
                RunningTask = currentTask;
                OnTaskChanged?.InvokeAll(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, currentResponse));
                OnTaskStart?.InvokeAll(this);
                KancolleTaskResult result = null;
                if (currentTask is OrganizeTask)
                {
                    result = Organize(currentTask as OrganizeTask);
                }
                else if (currentTask is SupplyTask)
                {
                    result = Supply(currentTask as SupplyTask);
                }
                else if (currentTask is QuestTask)
                {
                    result = Quest(currentTask as QuestTask);
                }
                else if (currentTask is MissionTask)
                {
                    result = Mission(currentTask as MissionTask);
                }
                else if (currentTask is MapTask)
                {
                    result = Map(currentTask as MapTask);
                }
                else if (currentTask is BattleTask)
                {
                    result = Battle(currentTask as BattleTask);
                }
                else if (currentTask is RemodelTask)
                {
                    result = Remodel(currentTask as RemodelTask);
                }
                else if (currentTask is RepairTask)
                {
                    result = Repair(currentTask as RepairTask);
                }
                else if (currentTask is RefreshDataTask)
                {
                    result = RefreshData(currentTask as RefreshDataTask);
                }

                if (result == null)
                {
                    result = new KancolleTaskResult(currentTask, KancolleTaskResultType.Fail, $"未能处理当前类型任务【{currentTask.GetType().Name}】", UnknownTaskType);
                }
                RunningTask = null;
                LastResult  = result;
                OnTaskFinished?.Invoke(this, result);
                Thread.Sleep(1000);
            }
            MessageBox.Show("thread finish");
        }