示例#1
0
 public async Task DownloadCollectionAsync(params string[] Uris)
 {
     using (var file = new FileObjectCollection(Uris))
     {
         for (int i = 0; i < Uris.Length; i++)
         {
             var temp = file[Uris[i]];
             temp.Tag = i;
             _table.AddRow(temp.Name, 0, 0, temp.Status, 0, 0);
         }
         file.FileDownloaded  += File_FileDownloaded;
         file.FileSaved       += File_FileSaved;
         file.FileDownloading += File_FileDownloading;
         file.FileSaving      += File_FileSaving;
         Task t1 = file.DownloadAndSaveAsync(true);
         Task t2 = Task.Factory.StartNew(async() =>
         {
             while (!(t1.IsCompleted))
             {
                 Console.Clear();
                 Console.SetCursorPosition(0, 0);
                 Console.WriteLine(_table.ToStringAlternative());
                 await Task.Delay(1000);
             }
         });
         await Task.Factory.StartNew(async() =>
         {
             await Task.WhenAll(t1, t2).ContinueWith(async(t) =>
             {
                 await Task.Delay(100);
                 Console.Clear();
                 Console.SetCursorPosition(0, 0);
                 Console.WriteLine(_table.ToStringAlternative());
                 Console.WriteLine("Finished!");
             });
         });
     }
 }