private void DownDirectlyButton_Click(object sender, RoutedEventArgs e) { var toa = new TaskOfALLExt(); this.TaskOfAll = toa; toa.GenerateTasksAndDownload(urlTemplate: UrlTemplate.Text, levels: Levels.Text, servers: "" ); toa.TasksGeneratedIncreasedByEvent += (s, ee) => { Dispatcher.Invoke(() => { lock (GenNum) { GenNum.Content = (int.Parse(GenNum.Content.ToString()) + ee).ToString(); } }); //Trace.WriteLine(ee); //; }; toa.TasksFininshedIncreasedByEvent += (s, ee, size) => { Dispatcher.Invoke(() => { lock (FinNum) { FinNum.Content = (int.Parse(FinNum.Content.ToString()) + ee).ToString(); } lock (FinSize) { FinSize.Content = (long.Parse(FinSize.Content.ToString()) + size).ToString(); GenSize.Content = StringUtils.SizeToReadable(long.Parse(FinSize.Content.ToString())); } }); }; }
private void Button_Click(object sender, RoutedEventArgs e) { Dispatcher.Invoke(() => { GenButton.IsEnabled = false; lock (DownButton) { DownButton.IsEnabled = false; } }); var toa = new TaskOfALLExt(); this.TaskOfAll = toa; toa.GenerateTasks(urlTemplate: UrlTemplate.Text, levels: Levels.Text, servers: "" ); toa.AllTasksGeneratedEvent += (a) => { //DownButton.IsEnabled = true; //MessageBox.Show("ALL GENERATED"); Dispatcher.Invoke(() => { lock (DownButton) { GenButton.IsEnabled = true; DownButton.IsEnabled = true; } var thi = this; //var ccc = TaskOfAll.TaskOfZs.Select(t => (TaskOfZExt)t).ToList(); var ttt = TaskOfAll.TaskOfZs.Select((item) => { return(new TaskOfZExt() { UrlTemplate = item.UrlTemplate, Z = item.Z, taskOfYs = item.taskOfYs, Finished = 0, ShouldBeDone_Xes = item.taskOfYs.Sum(ty => ty.taskOfXes.Count) }); }).ToList(); ttt.ForEach((tt) => { tt.taskOfYs.ForEach((t) => { Task.Factory.StartNew(() => { var countOfThisY = t.taskOfXes.Count; t.taskOfXes.ForEach((tx) => { tx.Finished += (aaa, size) => { tt.Finished++; Dispatcher.Invoke(() => { lock (TileUIListView) { TileUIListView.Items.Refresh(); } }); }; }); //t.AllTasksFinishedEvent += (s) => //{ // tt.Finished += countOfThisY; // Dispatcher.Invoke(() => // { // lock (TileUIListView) // { // TileUIListView.Items.Refresh(); // } // }); //}; }); //t.taskOfXes.ForEach((tx) => //{ //}); }); }); TileUIListView.ItemsSource = ttt;// TaskOfAll.TaskOfZs/*.Select((c) => { return (TaskOfZExt)c; })*/; TileUIListView.Items.Refresh(); }); //TileUIListView.Items.Add() //toa.AllTasksFinishedEvent += (b) => //{ // Console.WriteLine("ALL DOWNLOADED"); //}; //toa.DownTasks(); }; }