private void DoTheWork(Primes.Common.ICalculatePrimes calculator) { var sw = new Stopwatch(); int max = Convert.ToInt32(bxHowMany.Text); int threadCount = Convert.ToInt32(bxThreads.Text); sw.Start(); var p = new Primes.Common.Primes(calculator, threadCount); _primes = p.GetPrimes(2, max); sw.Stop(); ShowPrimes(); statusStrip1.Invoke( (MethodInvoker) (() => { statusStrip1.Items[0].Text = String.Format("Found {0:N0} primes in {1:N0} s.", _primes.Count, sw.ElapsedMilliseconds / 1000); })); }