示例#1
0
 public Process StartProcess(string assemblyName, string remotingId, bool openDebugConsole, bool monitorHostProcess)
 {
     using (var signal = new EventWaitHandle(false, EventResetMode.ManualReset, remotingId))
     {
         var process = m_WrappedProcessStarter.StartProcess(assemblyName, remotingId, openDebugConsole, monitorHostProcess);
         WaitForReadySignal(signal);
         return(process);
     }
 }
        public Process StartProcess(string assemblyName, string remotingId, bool openDebugConsole = false)
        {
            var process = m_WrappedProcessStarter.StartProcess(assemblyName, remotingId, openDebugConsole);

            if (Job.CanAssignProcessToJobObject(process))
            {
                new Job().AssignProcessToJobObject(process);
            }

            return(process);
        }
        public IChildProcessHandle Create(string assemblyName, bool openDebugConsole, bool monitorHostProcess)
        {
            Process process = null;

            try
            {
                process = m_ProcessBootstrapper.StartProcess(assemblyName, m_RemotingId, openDebugConsole, monitorHostProcess);
                return(new ChildProcessHandle(InitializeRemoting(), process));
            }
            catch
            {
                process?.KillAndDispose();

                throw;
            }
        }
示例#4
0
        public IChildProcessHandle Create(string assemblyName, bool openDebugConsole = false)
        {
            Process process = null;

            try
            {
                process = m_ProcessBootstrapper.StartProcess(assemblyName, m_RemotingId, openDebugConsole);
                return(new ChildProcessHandle(InitializeRemoting()));
            }
            catch
            {
                if (process != null)
                {
                    process.KillAndDispose();
                }

                throw;
            }
        }