Guest User

Untitled

a guest
Sep 10th, 2020
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.49 KB | None | 0 0
  1.  private async Task RunParser()
  2.         {
  3.            
  4.             for (int i = 0; i < 3; i++)
  5.             {
  6.                 int count = 25;
  7.                 var slim = new SemaphoreSlim(count);
  8.                 var threads = new List<Task>();
  9.                 await foreach (var url in parser.GetUrlsForParser(count))
  10.                 {
  11.                     if (cancellationToken.IsCancellationRequested)
  12.                     {
  13.                         break;
  14.                     }
  15.                     await slim.WaitAsync();
  16.  
  17.                     var t = Task.Run(async () =>
  18.                     {
  19.                         try
  20.                         {
  21.                             var page = await parser.ParserPageAsync(url);
  22.                             foreach (var item in page.OlxAds)
  23.                             {
  24.                                 olxAds.Add(item);
  25.                             }
  26.                             slim.Release();
  27.                         }
  28.                         catch (Exception ex)
  29.                         {
  30.                         }
  31.                     });
  32.                     threads.Add(t);
  33.                 }
  34.  
  35.                 //Task.WaitAll(threads.ToArray());
  36.                 await Task.WhenAll(threads);
  37.                 threads.ForEach(t => t.Dispose());
  38.                
  39.  
  40.  
  41.                 await WriterAds(olxAds);
  42.                 await Task.Delay(TimeSpan.FromMinutes(3));
  43.                 olxAds.Clear();
  44.                 threads.Clear();
  45.             }
Advertisement
Add Comment
Please, Sign In to add comment