private static void StartParsing() { Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); _urls.ForEach( url => { while (_currentThreadCount >= _maxThreadValue) { Thread.Sleep(100); } string tempUrl = url; _currentThreadCount++; Thread thread = new Thread( () => { TelegramChecker telegramChecker = new TelegramChecker(tempUrl, _reconnectCount); CheckStatus(telegramChecker); _currentThreadCount--; }) { IsBackground = true }; thread.Start(); }); while (_currentThreadCount != 0) { Thread.Sleep(100); } stopWatch.Stop(); TimeSpan ts = stopWatch.Elapsed; string elapsedTime = $"{ts.Hours:00}:{ts.Minutes:00}:{ts.Seconds:00}.{ts.Milliseconds / 10:00}"; Console.WriteLine("Runtime : {0}", elapsedTime); }
private static void CheckStatus(TelegramChecker telegramChecker) { if (telegramChecker.IsError) { Console.WriteLine($"{telegramChecker.Url} | Error"); _errors.Push(telegramChecker.Url); return; } switch (telegramChecker.UrlType) { case UrlTypes.Channel: { Console.WriteLine($"{telegramChecker.Url} | channel"); _bl.Push(telegramChecker.Url); _channels++; break; } case UrlTypes.CloseChat: { string data = $"{telegramChecker.Url} | Close chat"; Console.WriteLine(data); _good.Push(data); break; } case UrlTypes.Chat: { string data = $"{telegramChecker.Url} | {telegramChecker.Members}"; Console.WriteLine(data); _good.Push(data); _bl.Push(telegramChecker.Url); break; } } }