相当于RxJava

时间:2015-01-12 14:29:15

标签: c# system.reactive reactive-programming rx-java

我们可以使用Observable.Start()在C#Rx中异步执行一些代码,如下所示。我想知道RxJava中的等价物是什么。

void Main()
{
      AddTwoNumbersAsync (5,4)
      .Subscribe(x=>Console.WriteLine(x));

}
IObservable<int> AddTwoNumbersAsync(int a, int b)
{
      return Observable.Start(() => AddTwoNumbers(a, b));
}
int AddTwoNumbers(int a, int b)
{
  return a + b;
}

1 个答案:

答案 0 :(得分:5)

您可以将操作推迟到订阅,并确保在另一个线程上发生订阅:

Observable<Integer> sumDeferred = Observable.defer(new Func0<Observable<Integer>>() {
        @Override
        public Observable<Integer> call() {
            return Observable.just(addTwoNumbers(5, 4));
        }
    }).subscribeOn(Schedulers.io());
sumDeferred.subscribe(...);