private void RunBenchMark() { try { BenchMarkConfiguration configuration = (BenchMarkConfiguration)bindingSource.Current; this.as3ap = new AS3AP(Path.GetDirectoryName(Application.ExecutablePath), configuration); // Test Result Event handler this.testResultHandler = new TestResultEventHandler(OnTestResult); this.as3ap.TestResult += this.testResultHandler; // Progress Message Event handler this.progressMessageHandler = new ProgressMessageEventHandler(OnProgressMessage); this.as3ap.ProgressMessage += this.progressMessageHandler; this.as3ap.Run(); } catch (ThreadAbortException) { } catch (Exception ex) { StringBuilder e = new StringBuilder(); e.AppendFormat("Message: \r\n {0} \r\n StackTrace: \r\n {1}", ex.Message, ex.StackTrace); MessageBox.Show(e.ToString(), "AS3AP Benchmark - Exception"); } finally { if (this.testResultHandler != null) { this.as3ap.TestResult -= testResultHandler; } if (this.progressMessageHandler != null) { this.as3ap.ProgressMessage -= progressMessageHandler; } if (this.as3ap != null) { this.as3ap.Dispose(); this.as3ap = null; } } }
private void benchmarkBackgroundWorker_RunWorkerCompleted(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e) { this.ShowProgressMessage("Stopping benchmark"); if (this.testResultHandler != null) { this.as3ap.TestResult -= testResultHandler; } if (this.progressMessageHandler != null) { this.as3ap.ProgressMessage -= progressMessageHandler; } if (this.as3ap != null) { this.as3ap.Dispose(); this.as3ap = null; } this.ShowProgressMessage("Stopped"); }