Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private async Task RunParser()
- {
- for (int i = 0; i < 3; i++)
- {
- int count = 25;
- var slim = new SemaphoreSlim(count);
- var threads = new List<Task>();
- await foreach (var url in parser.GetUrlsForParser(count))
- {
- if (cancellationToken.IsCancellationRequested)
- {
- break;
- }
- await slim.WaitAsync();
- var t = Task.Run(async () =>
- {
- try
- {
- var page = await parser.ParserPageAsync(url);
- foreach (var item in page.OlxAds)
- {
- olxAds.Add(item);
- }
- slim.Release();
- }
- catch (Exception ex)
- {
- }
- });
- threads.Add(t);
- }
- //Task.WaitAll(threads.ToArray());
- await Task.WhenAll(threads);
- threads.ForEach(t => t.Dispose());
- await WriterAds(olxAds);
- await Task.Delay(TimeSpan.FromMinutes(3));
- olxAds.Clear();
- threads.Clear();
- }
Advertisement
Add Comment
Please, Sign In to add comment