public virtual async Task <AppProcess> Kill(CommandOptions options, CancellationToken cancellationToken) { var statuses = new List <AppStatus>(); AppProcess process = null; foreach (var name in ProcessNames) { process = new AppProcess(_platformService.GetKillProcess(name, options), AppTask.Kill, AppStatus.Running); try { if (options.KillProcessesOnExit) { process.Start(); await process.WaitForExitAsync(cancellationToken); } statuses.Add(AppStatus.Success); } catch { statuses.Add(AppStatus.Failure); } } if (statuses.Any(s => s == AppStatus.Failure)) { process.Status = AppStatus.Failure; } else { process.Status = AppStatus.Success; } return(process); }