Ejemplo n.º 1
0
        public void StartService()
        {
//			if(null!=ServiceThread)
//				throw new Exception("ServiceThread already exists!");
//			ServiceThread = new Thread(new ThreadStart(StartServiceThread));
            keepRunning = true;
//			ServiceThread.Start();
            p.Start();
            healthMonThread = new Thread(new System.Threading.ThreadStart(monitorHealth));
            healthMonThread.Start();
        }
 private void run()
 {
     while (keepRunning)
     {
         if (RunningProcesses < MaxRunningProcesses && processQueue.Count > 0)
         {
             ProcessInfo  processInfo = (ProcessInfo)processQueue.Dequeue();
             AgentProcess newProcess  = new AgentProcess();
             newProcess.Application    = processInfo.Application;
             newProcess.Arguments      = processInfo.Arguments;
             newProcess.MaxMemoryUsage = MaxPerProcessMemoryUsage;
             newProcess.MaxRuntime     = MaxPerProcessRuntime;
             newProcess.Priority       = ProcessPriority;
             newProcess.VerboseLogging = VerboseLogging;
             newProcess.Started       += new EventHandler(Process_Started);
             newProcess.Stopped       += new EventHandler(Process_Stopped);
             newProcess.Stopping      += new EventHandler(Process_Stopping);
             newProcess.Start();
         }
         for (int i = runningProcesses.Count - 1; i > -1; i--)
         {
             try
             {
                 AgentProcess p = (AgentProcess)runningProcesses[i];
                 if (!p.IsHealthy)
                 {
                     OnProcessNotHealthy(p);
                 }
             }
             catch {}
         }
         System.Threading.Thread.Sleep(1000);
     }
 }