我在网上搜索了一些提示,但一无所获。也许我搜索错了。
我的问题是:
如何确定当前正在执行的线程是否有资格修改 UI 组件?
这就是我现在为 UI 更新所做的:
UI.getCurrent().access(new Runnable() {
@Override
public void run() {
//modify some ui
}
});
在某些情况下,我不必这样做,它可以立即在当前线程中工作,但有时不会,我得到一个错误。当我比较 Runnable 中的线程和 Runnable 之外的线程时 - 这是完全相同的事情 =http-bio-8080-exec-10
我可以从代码中知道这是调用 UI.getCurrent().access() 或立即执行的正确位置吗?
我试图寻找线程寻找的差异: VaadinService.getCurrentResponse()
但 VaadinService.getCurrentRequest()
我没有看到任何规则或模式。
谢谢你的时间,托马斯