我正在使用RxJava
与JavaFx
一起使用,我不禁注意到性能不佳,每当我单击执行task
的button
时,button
将保持突出显示,直到方法完成,应用程序的行为就像它在UI线程上运行该方法一样。当我用普通的 Javathread
替换相同的Rx
调用时,我注意到性能要好得多,按钮突出显示不会保持亮起,整体应用程序转换似乎要好得多。以下是我的Rx
电话示例
Single.just(someMethod())
.observeOn(JavaFxScheduler.platform())
.subscribeOn(Schedulers.io())
.subscribe(new DisposableSingleObserver<>() {
@Override
public void onSuccess(Result result) {
//get my result
this.dispose();
}
@Override
public void onError(Throwable throwable) {
logger.error(throwable);
this.dispose();
}
});
我在Android
中使用RxJava
,与此相比,它的表现很好。有人有解决方案吗?
在组装期间,someMethod()
将被急切地评估。您希望将其评估推迟到订阅发生时。不确定是否有RxJava
中如何完成,但在Reactor
中,您可以使用:Mono.defer() -> someMethod()
。