private static void KillProcessAndSendResults(string processName) { if (!ProcessHelper.CheckProcessStart(processName)) { Console.WriteLine($"Process {processName} is not running."); } else { ProcessHelper.KillAllProcess(_processName); Console.WriteLine($"Process {_processName} has been killed."); } }
public static void Main(params string[] args) { if (args.Length < 3) { throw new ArgumentOutOfRangeException( $"Number of arguments is less than necessary. Arguments: {string.Join(", ", args)}"); } if (args.Length > 3) { throw new ArgumentOutOfRangeException( $"Number of arguments exceeds possible. Arguments: {string.Join(", ", args)}"); } _processName = args[0].Trim(); _schedulerTime = TimeSpan.FromMinutes(int.Parse(args[1])); _maxMinutesLife = TimeSpan.FromMinutes(int.Parse(args[2])); AppDomain.CurrentDomain.ProcessExit += ProcessExit; Console.WriteLine("Press any key to exit. \r\n"); if (ProcessHelper.CheckProcessStart(_processName)) { Console.WriteLine("The process is already running. Time control started."); _processStarTime = DateTime.Now; } var startWatch = ProcessHelper.GetProcessStartWatcher(); startWatch.EventArrived += StartWatchEventArrived; startWatch.Start(); var stopWatch = ProcessHelper.GetProcessStopWatcher(); stopWatch.EventArrived += StopWatchEventArrived; stopWatch.Start(); var monitoring = ProcessMonitoringTask(); monitoring.Start(); while (!Console.KeyAvailable) { System.Threading.Thread.Sleep(50); } startWatch.Stop(); stopWatch.Stop(); }