0
我想啓動一個子進程並觀察它的重定向輸出。在C#中,我不是一個 問題,但我試着去理解RX,因此本場比賽開始...... 我有一個過程的靜態擴展方法,它看起來像這樣:RX需要幫助:將System.Diagnostics.Process.OutputDataReceived轉換爲Observable
public static IObservable<IEvent<DataReceivedEventArgs>> GetOutput(this Process that)
{
return Observable.FromEvent<DataReceivedEventArgs>(that, "OutputDataReceived");
}
我創建一個可觀察並訂閱像這樣:
Process p = ........
var outObs = p.GetOutput();
var outSub = outObs.Subscribe(data => Console.WriteLine(data));
這並不是完全錯誤的,但我得到:
System.Collections.Generic.Event`1[System.Diagnostics.DataReceivedEventArgs]
,而我期望得到的字符串:-(
所以,我認爲,我的extensionmethod返回錯誤的類型。 這將是非常好的,如果有人能解釋我,什麼是 wong與我的擴展方法簽名。
非常感謝, ++ mabra
你好! Phantastic,這個作品!非常感謝解釋,現在已經很清楚了。 Rx對我來說很難;-) – mabra 2011-05-15 11:10:05
保持這種狀態,它進入你的腦海 – 2011-05-15 11:20:38
最後收到的數據總是'空' - 是否有可能吞下該值,而是將observable標記爲關閉? – 2016-08-12 08:25:02