Ejemplo n.º 1
0
 public TestWindow()
 {
     InitializeComponent();
     this.DataContext  = this;
     TaskExcuteHandler = UploadFile;
     //TaskExcuteHandler = UpLoadFileAsync;
     RunModelEnum           = TaskRunModelEnum.SINGLE;
     MaxTaskQuantity        = 3;
     CancelTaskCommand      = new NMCommand <TaskItem <bool> >(OnCancelTask);
     RetryTaskCommand       = new NMCommand <TaskItem <bool> >(OnRetryTask);
     NullTaskNoteVisibility = Visibility.Collapsed;
 }
Ejemplo n.º 2
0
        public async Task StartMutiTask(IEnumerable <Task> aProgressingTasks, TaskRunModelEnum runModelEnum = TaskRunModelEnum.SINGLE)
        {
            switch (runModelEnum)
            {
            case TaskRunModelEnum.SINGLE:
                //按顺序执行
                await Task.Run(() => TaskEnumerbleExecutor(aProgressingTasks.GetEnumerator()));

                break;

            case TaskRunModelEnum.PARALLEL:
                //同时执行所有task
                await Task.WhenAll(aProgressingTasks.ToArray()).ConfigureAwait(false);

                break;

            case TaskRunModelEnum.GROUP:
                //分组执行
                await TaskEnumerbleExecutorByGroup(aProgressingTasks.GetEnumerator(), MaxTaskQuantity);

                break;
            }
        }