private void testProxyList() { int proxyNum = this.proxyDataModel.ProxyList.Count; int proxyTested = 0; this.Enabled = false; Task.Factory.StartNew(() => { Parallel.ForEach(this.proxyDataModel.ProxyList, new ParallelOptions() { MaxDegreeOfParallelism = 32 }, proxy => { proxy.PerformTest(); ++proxyTested; this.BeginInvoke((MethodInvoker) delegate { this.updateTestProgress(Convert.ToInt16(proxyTested * 100.0 / proxyNum)); }); }); this.BeginInvoke((MethodInvoker) delegate { this.testProgressForm.Close(); this.testProgressForm = null; this.Enabled = true; }); }); }
private void TestProxyList() { var proxyNum = _proxyDataModel.ProxyList.Count; var proxyTested = 0; Invoke(new Action(() => Enabled = false)); Task.Factory.StartNew(() => { Parallel.ForEach(_proxyDataModel.ProxyList, new ParallelOptions { MaxDegreeOfParallelism = MaxParallelism }, proxy => { proxy.PerformTest(); ++proxyTested; Invoke(new Action(() => UpdateTestProgress(Convert.ToInt16(proxyTested * 100.0 / proxyNum)))); }); Invoke(new Action(() => { _testProgressForm.Close(); _testProgressForm = null; Enabled = true; })); }); }
private void btnStartTest_Click(object sender, EventArgs e) { IList <Proxy> proxyList = this.proxyDataModel.ProxyList; this.testProgressForm = new TestProgressForm(); this.testProgressForm.Show(); this.testProxyList(); }
private void btnStartTest_Click(object sender, EventArgs e) { var proxyList = _proxyDataModel.ProxyList; _testProgressForm = new TestProgressForm(); _testProgressForm.Show(); ForThread = new Thread(TestProxyList) { IsBackground = true }; ForThread.Start(); }