private void EndBenchmark()
        {
            Invoke((MethodInvoker) delegate
            {
                _benchmarkingTimer.Stop();
                InBenchmark = false;
                Ethlargement.Stop();
                Helpers.ConsolePrint("FormBenchmark", "EndBenchmark() benchmark routine finished");

                //CopyBenchmarks();

                BenchmarkStoppedGuiSettings();
                // check if all ok
                if (!_hasFailedAlgorithms && StartMining == false)
                {
                    MessageBox.Show(
                        International.GetText("FormBenchmark_Benchmark_Finish_Succes_MsgBox_Msg"),
                        International.GetText("FormBenchmark_Benchmark_Finish_MsgBox_Title"),
                        MessageBoxButtons.OK);
                }
                else if (StartMining == false)
                {
                    var result = MessageBox.Show(
                        International.GetText("FormBenchmark_Benchmark_Finish_Fail_MsgBox_Msg"),
                        International.GetText("FormBenchmark_Benchmark_Finish_MsgBox_Title"),
                        MessageBoxButtons.RetryCancel);

                    if (result == DialogResult.Retry)
                    {
                        StartButonClick();
                        return;
                    }

                    // get unbenchmarked from criteria and disable
                    CalcBenchmarkDevicesAlgorithmQueue();
                    foreach (var deviceAlgoQueue in _benchmarkDevicesAlgorithmQueue)
                    {
                        foreach (var algorithm in deviceAlgoQueue.Item2)
                        {
                            algorithm.Enabled = false;
                        }
                    }
                }

                if (ExitWhenFinished || StartMining)
                {
                    Close();
                }
            });
        }
        private void EndBenchmark()
        {
            Invoke((MethodInvoker) delegate
            {
                _benchmarkingTimer.Stop();
                InBenchmark = false;
                Ethlargement.Stop();
                Helpers.ConsolePrint("FormBenchmark", "EndBenchmark() benchmark routine finished");

                //CopyBenchmarks();

                BenchmarkStoppedGuiSettings();
                // check if all ok
                if (!_hasFailedAlgorithms && StartMining == false)
                {
                    MessageBox.Show(
                        Translations.Tr("All benchmarks have been successful"),
                        Translations.Tr("Benchmark finished report"),
                        MessageBoxButtons.OK);
                }
                else if (StartMining == false)
                {
                    var result = MessageBox.Show(
                        Translations.Tr("Not all benchmarks finished successfully. Retry to re-run the benchmark process against unbenchmarked algos or Cancel to disable unbenchmarked algorithms."),
                        Translations.Tr("Benchmark finished report"),
                        MessageBoxButtons.RetryCancel);

                    if (result == DialogResult.Retry)
                    {
                        StartButonClick();
                        return;
                    }

                    // get unbenchmarked from criteria and disable
                    CalcBenchmarkDevicesAlgorithmQueue();
                    foreach (var deviceAlgoQueue in _benchmarkDevicesAlgorithmQueue)
                    {
                        foreach (var algorithm in deviceAlgoQueue.Item2)
                        {
                            algorithm.Enabled = false;
                        }
                    }
                }

                if (ExitWhenFinished || StartMining)
                {
                    Close();
                }
            });
        }