/// <summary>This is called whenever the progress changes</summary> public static void OnProblemReport(object sender, ProblemReport problemReport) { if (ProblemReport != null) { ProblemReport(null, problemReport); } }
private void OnWorkerReportsProblem(object sender, ProblemReport e) { //We need to invoke the control so we don't get a cross thread exception if (this.InvokeRequired) { this.BeginInvoke((MethodInvoker) delegate { OnWorkerReportsProblem(sender, e); }); return; } //Update the text, but don't change the tab- Do this when the worker terminates ProblemEncountered = true; if (creatingPackage) { labelInstallSuccess1.Text = Interface.GetInterfaceString("packages_install_failure"); labelInstallSuccess2.Text = Interface.GetInterfaceString("packages_install_failure_header"); } else { labelInstallSuccess1.Text = Interface.GetInterfaceString("packages_creation_failure"); labelInstallSuccess2.Text = Interface.GetInterfaceString("packages_creation_failure_header"); } labelListFilesInstalled.Text = Interface.GetInterfaceString("packages_creation_failure_error"); buttonInstallFinish.Text = Interface.GetInterfaceString("packages_success"); //Non-localised string as this is a specific error message textBoxFilesInstalled.Text = e.Exception + "\r\n \r\n encountered whilst processing the following file: \r\n\r\n" + e.CurrentFile + "at " + e.Progress + "% completion."; //Create crash dump file CrashHandler.LogCrash(e.Exception + Environment.StackTrace); }