private void SelectedTask_TaskDone(object sender, EventArgs e)
        {
            selectedTask.Stop();
            selectedTask.TaskDone -= SelectedTask_TaskDone;

            window.InterruptTask.Visibility   = Visibility.Collapsed;
            window.TaskResultPanel.Visibility = Visibility.Visible;

            //result
            StackPanel panel = new StackPanel();

            panel.Margin = new Thickness(10);
            panel.Children.Add(new TextBlock()
            {
                Text       = "Задача выполнена!",
                Foreground = new SolidColorBrush(Colors.Green),
                FontFamily = new FontFamily("TimesNewRoman"),
                FontSize   = 18
            });
            R123.AdditionalWindows.Message msg = new R123.AdditionalWindows.Message(panel, false);
            msg.ShowDialog();
            //

            window.TaskResult.Text = "Задача выполнена.";
            window.TaskErrors.Text = "Количество ошибок: " + selectedTask.Errors;
            selectedTask           = null;
        }
        public void RunSelectedItem(object obj)
        {
            RadioTaskDescription description   = obj as RadioTaskDescription;
            RadioTaskGenerator   taskGenerator = new RadioTaskGenerator(window.Radio.Model);

            selectedTask = taskGenerator.CreateTaskBy(description.Type, description.SelectedItem);
            window.TaskDescription.Text = selectedTask.Description;
            //если установка в начальное положение.
            if (description.Type == RadioTaskType.InitialState)
            {
                InitializeMiddle();
            }
            else
            {
                Restart();
            }

            selectedTask.Reset();

            selectedTask.TaskDone += SelectedTask_TaskDone;
            selectedTask.Start();
        }
 public void InterraptTask()
 {
     selectedTask.TaskDone          -= SelectedTask_TaskDone;
     window.InterruptTask.Visibility = Visibility.Collapsed;
     selectedTask = null;
 }