特定
// observable getting files in folder as they are created
IObservable<string> files = GetFilesAsTheyAreCreated();
和功能
// gets lines of the file as they are written
IObservable<string> GetLines(string filePath)
我想创建一个observable,返回写入最后创建的文件的行。随着新文件的创建,我想开始从该文件中获取行。现在我有以下代码:
var lines = files.SelectMany(f => GetLines(f));
这个问题是我也将所有行添加到旧文件中。有没有办法忽略那些旧线?
注意:我最感兴趣的是取消GetLines
observable,因为它在新线程上运行。
这可以通过内置运营商实现吗?
你需要的是超级简单:
var lines = files.Select(f => GetLines(f)).Switch();
.Switch()
算子通过仅从最近的外部可观测量返回内部值将IObservable<IObservable<T>>
变成IObservable<T>
。正是你想要的。