private ActivityHostProcess CreateNewActivityHostProcess()
        {
            ActivityHostProcess process = new ActivityHostProcess(_configuration.ActivityProcessIdleTimeoutSec, _configuration.LanguageMode);

            process.ProcessCrashed += ProcessCrashed;
            process.Finished       += ProcessFinished;
            process.OnProcessIdle  += ProcessIdle;

            PerfCountersMgr.UpdateCounterByValue(
                PSWorkflowPerformanceCounterSetInfo.CounterSetId,
                PSWorkflowPerformanceCounterIds.ActivityHostMgrProcessesPoolSize);
            return(process);
        }
 internal ActivityHostProcess(int activityHostTimeoutSec, PSLanguageMode?languageMode)
 {
     _languageMode     = languageMode;
     _useJobIPCProcess = true;
     _tracer.WriteMessage("BEGIN Creating new PowerShell process instance");
     _processInstance = new PowerShellProcessInstance();
     _tracer.WriteMessage("END Creating new PowerShell process instance ");
     _runspace = CreateRunspace();
     _tracer.WriteMessage("New runspace created ", _runspace.InstanceId.ToString());
     _timer = new Timer {
         AutoReset = false, Interval = TimeOut
     };
     _timer.Elapsed += TimerElapsed;
     _timer.Interval = activityHostTimeoutSec > 0 ? activityHostTimeoutSec * 1000 : TimeOut;
     _perfCountersMgr.UpdateCounterByValue(
         PSWorkflowPerformanceCounterSetInfo.CounterSetId,
         PSWorkflowPerformanceCounterIds.ActivityHostMgrCreatedProcessesCount);
 }