private void WorkerCompleted(object sender, FindPrimesCompletedEventArgs e) { // Stop tracking the worker. lock (workers) { workers.Remove((EratosthenesTask)sender); } // Show the results (on the user interface thread). this.Invoke(new FindPrimesCompletedEventHandler(ShowResults), new object[] {sender, e} ); }
private void ShowResults(object sender, FindPrimesCompletedEventArgs e) { AsyncTestResult result = new AsyncTestResult(); result.Text = String.Format("Primes From {0} To {1}", new object[] { e.From, e.To }); result.ShowList(e.PrimeList); result.MdiParent = this; result.Show(); lock (workers) { statusPanel.Text = String.Format("Currently running {0} tasks.", workers.Count); } }