private void btnNext_Click(object sender, EventArgs e)
 {
     try
     {
         bool result = _computingProcessor.ComputeNextPlugin();
         if (!result)
         {
             btnNext.Enabled = false;
             btnStartStop.Text = "Запуск";
             _isProcessing = false;
             _computingProcessor = null;
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
        private void btnStartStop_Click(object sender, EventArgs e)
        {
            try
            {
                if (!_isProcessing)
                {
                    _computingProcessor = new ComputingProcessor(PlowMachine, _queue, UseLog);

                    if (chxbxAutoMode.Checked)
                    {
                        ComputeInAutoMode();
                    }
                    else
                    {
                        if (chxbxStepByStepMode.Checked)
                        {
                            #region Расчёт в пользрвательском режиме пошагово
                            _computingProcessor.PluginComputeEnd += delegate(string pluginName)
                                            {
                                                MessageBox.Show("Расчет плагина '" + pluginName + "' закончен.", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                            };

                            _computingProcessor.ComputingProcessingEnd += delegate
                            {
                                MessageBox.Show("Расчет закончен.", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            };

                            bool result = _computingProcessor.ComputeNextPlugin();
                            if (result) btnNext.Enabled = true;

                            _isProcessing = true;
                            btnStartStop.Text = "Стоп";
                            #endregion
                        }
                        else
                        {
                            #region Расчёт в пользовательском режиме "все за раз"
                            _computingProcessor.ComputingProcessingEnd += delegate
                                           {
                                               MessageBox.Show("Расчет закончен.", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                           };

                            _computingProcessor.ProcessAll();
                            #endregion
                        }
                    }
                }
                else
                {
                    btnNext.Enabled = false;
                    btnStartStop.Text = "Запуск";
                    _isProcessing = false;
                    _computingProcessor = null;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }