/// <summary> /// /// </summary> private void StopChecker() { if (_proxyCheckerSvc == null) { return; } _proxyCheckerSvc.Shutdown(); _proxyCheckerSvc.OnIPProxyChecked -= null; _proxyCheckerSvc = null; _checkerIsRunning = false; }
/// <summary> /// /// </summary> private void RunChecker() { if (_proxyCheckerSvc == null) { _proxyCheckerSvc = new IPProxyChecker(IPCheckWorkerCounts) { ProxyBucket = ProxyBucket } } ; _proxyCheckerSvc.OnIPProxyChecked += (s, e) => { OnIPProxyChecked?.Invoke(this, e); // fire ready event if (!e.IsValid || ProxyBucket.Count <= 0 || _firedReady) { return; } _firedReady = true; OnIPProxyReady?.Invoke(this, new EventArgs()); }; _proxyCheckerSvc.OnIPProxiesChecked += (s, e) => { OnIPProxiesChecked?.Invoke(this, e); }; Task.Delay(1000) .ContinueWith(t => { _proxyCheckerSvc.Resume(); _checkerIsRunning = true; }); }