private void worker_DoWork(object sender, DoWorkEventArgs e) { var watch = System.Diagnostics.Stopwatch.StartNew(); for (int i = 0; i < googleProductList.Count; i++) { googleProductList.ElementAt(i).DirSize = HelpfulMethods.DirSize(new DirectoryInfo(googleProductList.ElementAt(i).ProductFolderPath)); product_worker(googleProductList.ElementAt(i)); decimal send = (((i + 1) / (decimal)googleProductList.Count) * 100); (sender as BackgroundWorker).ReportProgress((int)send); // TODO Add a check if count==0 } watch.Stop(); enterLog("Elapsed Time: " + (watch.ElapsedMilliseconds / 1000.0) + " seconds"); }