Reactive Extensions基于特定数字的并行处理

时间:2012-04-16 17:21:43

标签: .net system.reactive throttling reactive-programming

我是Reactive Extensions的新手。我有对象集合并为每个对象调用方法,并返回布尔值。通过使用for each循环并调用方法,而不是循环遍历每个循环,在被动扩展中有一种方法可以同时调用(fork和join)给定数量对象的方法(例如,在第一次完成之后,第6次应该调用方法,它应该继续直到完成所有对象。

感谢您的回复。

1 个答案:

答案 0 :(得分:5)

IObservable<bool> someBoolAsyncMethod(SomeObject o)

someCollection.ToObservable()
    .Select(x => Observable.Defer(() => 
        someBoolAsyncMethod(x).Select(y => new { Item = x, Result = y})))
    .Merge(5)
    .ToList()
    .Subscribe(newListOfBools);