Esempio n. 1
0
        Timer MonitorProcessOutput(Process process, TimeSpan timeout) {
            Contract.Requires<ArgumentNullException>(process != null);
            Contract.Requires<ArgumentNullException>(timeout != null);

            var state = process.MonitorProcessOutput();
            _monitorStarted.OnNext(Tuple.Create(process.StartInfo, process.Id, "Output"));
            return new TimerWithElapsedCancellation(MonitorInterval,
                () => OnOutputMonitorElapsed(process, state, timeout),
                (o, args) => _monitorStopped.OnNext(Tuple.Create(process.StartInfo, process.Id, "Output")));
        }