public async Task <string> StartTask(int delay, string css) { var tokenSource = new CancellationTokenSource(); string taskId = string.Format("progress{0}", Guid.NewGuid()); CurrentTasks.TryAdd(taskId, new TaskDetails { Percent = 0, CancelToken = tokenSource, Id = taskId, Name = string.Format("Empty task #{0}", this.CurrentTasks.Count), BarCss = css, TaskPage = "/" }); //var task = Task.Factory.StartNew(() => Calculation(delay, taskId, tokenSource.Token), tokenSource.Token); var task = MyEmptyTask.StartCalculation(delay, tokenSource.Token, new Progress <int>(pourcent => { if (CurrentTasks.ContainsKey(taskId)) { CurrentTasks[taskId].Percent = pourcent; } ReportProgress(); })); await task; return("Task result"); }
public void CreateTasks() { // TODO - can be replaced by copy tasks ForwardTask = new MyEmptyTask(); DeltaBackTask = new MyEmptyTask(); }