예제 #1
0
 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.");
     }
 }
예제 #2
0
        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();
        }