public void Test1() { var processes = new Processes(); var p = new ProcessStartInfo("mspaint.exe"); // p. var s = new CancellationTokenSource(); processes.RunAsync(p, s).ContinueWith(t => { if(t.IsCanceled) { Console.WriteLine("cancelled"); } }); Observable.Timer(TimeSpan.FromSeconds(3)).Subscribe( a => s.Cancel()); Thread.Sleep(10000); }