我们可以使用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;
}
答案 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(...);