private void Generator_ProgressChanged(object sender, Generator.ProgressChangedEventArgs e) { if (e.ChangeType == ProgressChangeType.Details) { //details will be updated periodically so we need to save them //if we were to update them here and now, we could freeze the UI if they are generated to quickly _lastDetailsArgs = e; } else { this.Invoke(new MethodInvoker(() => { if (e.ChangeType == ProgressChangeType.Overall) { lblOverview.Text = e.Message; lblDetails.Text = ""; progressDetails.Value = 0; progressOverall.Value = e.ProgressPctValue; _lastDetailsArgs = null; } })); } }