diff --git a/VECTO/GUI/F_MAINForm.vb b/VECTO/GUI/F_MAINForm.vb index 247de96a5021117d2526934985c5e274c6079093..dcbdafb075c2152a3ce9a704a820226b7d63c485 100644 --- a/VECTO/GUI/F_MAINForm.vb +++ b/VECTO/GUI/F_MAINForm.vb @@ -1682,30 +1682,48 @@ Imports TUGraz.VectoCore.Utils String.Format("Duration: {0:0}s, Current Progress: {1:P} ({2})", duration, sumProgress/progress.Count, String.Join(", ", progress.Select(Function(pair) String.Format("{0,4:P}", pair.Value.Progress))))}) - For Each p As KeyValuePair(Of UInteger, JobContainer.ProgressEntry) In progress - If p.Value.Done And Not doneProcesses.Contains(p.Key) Then - Dim modFilename As String = fileWriter.GetModDataFileName(p.Value.RunName, p.Value.CycleName, p.Value.RunSuffix) - Dim runName As String = String.Format("{0} {1} {2}", p.Value.RunName, p.Value.CycleName, p.Value.RunSuffix) - sender.ReportProgress(0, New With {.Target = "ListBox", .Message = String.Format("Finished Run {0}", runName)}) - If Not p.Value.Error Is Nothing Then - sender.ReportProgress(0, - New _ - With {.Target = "ListBoxError", .Message = String.Format("ERROR {0}: {1}", runName, p.Value.Error.Message), - .Link = modFilename}) - End If - 'If Not Cfg.DeclMode Then + For Each p As KeyValuePair(Of UInteger, JobContainer.ProgressEntry) In _ + progress.Where(Function(proc) proc.Value.Done And Not doneProcesses.Contains(proc.Key)) + Dim modFilename As String = fileWriter.GetModDataFileName(p.Value.RunName, p.Value.CycleName, p.Value.RunSuffix) + Dim runName As String = String.Format("{0} {1} {2}", p.Value.RunName, p.Value.CycleName, p.Value.RunSuffix) + sender.ReportProgress(0, New With {.Target = "ListBox", .Message = String.Format("Finished Run {0}", runName)}) + If Not p.Value.Error Is Nothing Then sender.ReportProgress(0, New _ - With {.Target = "ListBox", - .Message = String.Format("Run {0}: Modal Results written to {1}", runName, modFilename), .Link = modFilename}) - 'End If - - doneProcesses.Add(p.Key) + With {.Target = "ListBoxError", .Message = String.Format("ERROR {0}: {1}", runName, p.Value.Error.Message), + .Link = modFilename}) End If + 'If Not Cfg.DeclMode Then + sender.ReportProgress(0, New With {.Target = "ListBox", + .Message = String.Format("Run {0}: Modal Results written to {1}", runName, modFilename), .Link = modFilename}) + 'End If + + doneProcesses.Add(p.Key) Next Thread.Sleep(250) End While + For Each p As KeyValuePair(Of UInteger, JobContainer.ProgressEntry) In _ + jobContainer.GetProgress().Where(Function(proc) Not doneProcesses.Contains(proc.Key)) + Dim modFilename As String = fileWriter.GetModDataFileName(p.Value.RunName, p.Value.CycleName, p.Value.RunSuffix) + Dim runName As String = String.Format("{0} {1} {2}", p.Value.RunName, p.Value.CycleName, p.Value.RunSuffix) + sender.ReportProgress(0, New With {.Target = "ListBox", .Message = String.Format("Finished Run {0}", runName)}) + If Not p.Value.Error Is Nothing Then + sender.ReportProgress(0, + New _ + With {.Target = "ListBoxError", .Message = String.Format("ERROR {0}: {1}", runName, p.Value.Error.Message), + .Link = modFilename}) + End If + 'If Not Cfg.DeclMode Then + sender.ReportProgress(0, + New _ + With {.Target = "ListBox", + .Message = String.Format("Run {0}: Modal Results written to {1}", runName, modFilename), .Link = modFilename}) + 'End If + + doneProcesses.Add(p.Key) + Next + Dim sumFilename As String = fileWriter.GetSumFileName() If File.Exists(sumFilename) Then sender.ReportProgress(100,