コード例 #1
0
 public ProcessExitResult LaunchAndProcess(LaunchAndProcessInfo info) {
     return LaunchAndProcessAsync(info).WaitAndUnwrapException();
 }
コード例 #2
0
 public async Task<ProcessExitResult> LaunchAndProcessAsync(LaunchAndProcessInfo info) {
     using (var process = new ReactiveProcess {StartInfo = info.StartInfo.EnableRedirect()}) {
         SetupStandardOutput(info, process);
         SetupStandardError(info, process);
         return
             await
                 LaunchAndWaitForExitAsync(process, info.MonitorOutput, info.MonitorResponding,
                     info.CancellationToken)
                     .ConfigureAwait(false);
     }
 }
コード例 #3
0
 static void SetupStandardOutput(LaunchAndProcessInfo info, ReactiveProcess process) {
     if (info.StandardOutputAction == null)
         return;
     if (!info.StartInfo.RedirectStandardOutput)
         throw new InvalidOperationException("Not redirected output");
     process.StandardOutputObservable.Subscribe(data => info.StandardOutputAction(process, data));
 }
コード例 #4
0
 public Task<ProcessExitResult> LaunchAndProcessAsync(LaunchAndProcessInfo info) {
     Contract.Requires<ArgumentNullException>(info != null);
     return default(Task<ProcessExitResult>);
 }