private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e) { ProjectParserXml prXml = new ProjectParserXml(_mainPath); int current = 0; int max = DataGrid.Items.Count; foreach (TbParamsXml rowData in DataGrid.ItemsSource) { current++; int progress = (current*100/max); BackgroundWorker.ReportProgress(progress); System.Threading.Thread.Sleep(100); if (rowData.Use) { if (rowData.UseP || rowData.UseTmp) { prXml.EditObjectParamsInXmlEx(rowData); } else prXml.EditObjectParamsInXml(rowData.ClassName, rowData.Param, rowData.Attr, rowData.Value, rowData.VRegexp); } } }