public static ExitCode Run(string[] arguments) { Options options = new Options(); if (!options.ParseArguments(arguments)) { Console.WriteLine(Options.Usage()); return(ExitCode.Failure); } try { List <Assembly> assemblies = GetAssemblies(options); if (assemblies.Count == 0) { Console.WriteLine(Options.Usage()); return(ExitCode.Failure); } return(RunAllInParallel(assemblies, options.GetRunOptions(), (uint)options.Threads).Result); } catch (Exception ex) { Console.WriteLine(ex.ToString()); return(ExitCode.Error); } }