WaitForExit() public method

public WaitForExit ( int milliseconds ) : bool
milliseconds int
return bool
        public static AsyncProcess Start(ProcessStartInfo startInfo, IDictionary environment)
        {
            startInfo.RedirectStandardError  = true;
            startInfo.RedirectStandardOutput = true;
            startInfo.UseShellExecute        = false;

            if (environment != null)
            {
                foreach (var i in environment.Keys)
                {
                    startInfo.EnvironmentVariables[(string)i] = (string)environment[i];
                }
            }

            var result = new  AsyncProcess(new Process {
                StartInfo = startInfo
            });

            result._process.EnableRaisingEvents = true;

            // set up std* access
            result._process.ErrorDataReceived += (sender, args) => {
                result._stdError.Add(args.Data ?? string.Empty);
            };

            result._process.OutputDataReceived += (sender, args) => {
                result._stdOut.Add(args.Data ?? string.Empty);
            };
            result._process.Exited += (sender, args) => {
                result.WaitForExit();
                result._stdError.Completed();
                result._stdOut.Completed();
            };

            result._process.Start();
            result._process.BeginErrorReadLine();
            result._process.BeginOutputReadLine();


            return(result);
        }
        public static AsyncProcess Start(ProcessStartInfo startInfo, IDictionary environment) {
            startInfo.RedirectStandardError = true;
            startInfo.RedirectStandardOutput = true;
            startInfo.UseShellExecute = false;

            if (environment != null) {
                foreach (var i in environment.Keys) {
                    startInfo.EnvironmentVariables[(string)i] = (string)environment[i];
                }
            }
            
            var result = new  AsyncProcess(new Process {
                StartInfo = startInfo
            });

            result._process.EnableRaisingEvents = true;

            // set up std* access
            result._process.ErrorDataReceived += (sender, args) => {
                result._stdError.Add(args.Data ?? string.Empty);
            };

            result._process.OutputDataReceived += (sender, args) => {
                result._stdOut.Add(args.Data ?? string.Empty);
            };
            result._process.Exited +=(sender, args) => {
                result.WaitForExit();
                result._stdError.Completed();
                result._stdOut.Completed();
            };
            
            result._process.Start();
            result._process.BeginErrorReadLine();
            result._process.BeginOutputReadLine();
            

            return result;
        }