private async Task RunDetectionProgramOnSelected()
        {
            this.detectionProgram?.Abort();

            RunButton.IsEnabled  = false;
            StopButton.IsEnabled = true;

            this.detectionProgram = new DetectionProgram();
            var aborted = await this.detectionProgram.RunOne(
                this.scannerRegistryViewModel.SelectedScanner,
                BuildDetectionProgramArgs(),
                DetectionProgram_UpdateOne,
                DetectionProgram_RequestParameter);

            if (!aborted)
            {
                RunButton.IsEnabled  = true;
                StopButton.IsEnabled = false;
                SkipButton.IsEnabled = false;
            }
        }
        private async Task RunDetectionProgram(int skipCount = 0)
        {
            this.detectionProgram?.Abort();

            RunButton.IsEnabled  = false;
            StopButton.IsEnabled = true;

            this.detectionProgram = new DetectionProgram();
            var aborted = await detectionProgram.Run(
                BuildDetectionProgramArgs(),
                skipCount,
                DetectionProgram_Update,
                DetectionProgram_RequestParameter);

            if (!aborted)
            {
                RunButton.IsEnabled  = true;
                StopButton.IsEnabled = false;
                SkipButton.IsEnabled = false;
            }
        }