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; }
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; } }