private static void CalculateSpectra(SiteData data, int window, Action <double> progress) { var cmps = data.GetAllData(); for (int i = 0; i < cmps.Count; i++) { var sp = PowerSpectraCalculation.Run(cmps[i].Ts, window, p => progress((i * 100.0 + p) / cmps.Count)); Application.Current.Dispatcher.Invoke(() => cmps[i].Spectra = sp); } }