Example #1
0
        private IEnumerable <Task> InitTaskInstance(IEnumerable <TaskItem <bool> > aTasks)
        {
            var progressingTasks = aTasks.Select(async t =>
            {
                if (t.TaskInstance == null)
                {
                    t.TaskInstance = TaskExcuteHandler.Invoke(t, t.TaskCancellationTokenSource.Token);
                }
                await t.TaskInstance.ConfigureAwait(false);
            });

            return(progressingTasks);
        }
Example #2
0
 private async void TraversalTaskListNew(ObservableCollection <TaskItem <bool> > aTaskCollection)
 {
     isRun = true;
     await Task.Run(async() =>
     {
         NullTaskNoteVisibility = Visibility.Collapsed;
         TaskCollection         = new ObservableCollection <TaskItem <bool> >(aTaskCollection.Where(x => x.TaskStatus != TaskStatusEnum.Completed));
         if (TaskCollection.FirstOrDefault(x => x.TaskStatus == TaskStatusEnum.InProgress) != null)
         {
             await Task.Delay(100);
             TraversalTaskListNew(TaskCollection);
         }
         else
         {
             var task = TaskCollection.FirstOrDefault(t => t.TaskStatus == TaskStatusEnum.Ready || t.TaskStatus == TaskStatusEnum.Hangup);
             if (task != null)
             {
                 if (task.TaskStatus == TaskStatusEnum.Hangup)
                 {
                     task.TaskCancellationTokenSource = new CancellationTokenSource();
                 }
                 task.TaskInstance = TaskExcuteHandler.Invoke(task, task.TaskCancellationTokenSource.Token);
                 await Task.Delay(100);
                 await task.TaskInstance.ContinueWith(_ => TraversalTaskListNew(TaskCollection));
             }
             else
             {
                 isRun = false;
                 if (TaskCollection.Count() == 0)
                 {
                     NullTaskNoteVisibility = Visibility.Visible;
                     return;
                 }
             }
         }
     });
 }