2

我正在使用 Vaadin 7。在我的应用程序中有一个表格列表,用户可以选择一个或多个项目来详细说明。如果单击执行按钮,则禁用 UI 组件并启动两个线程:第一个线程进行大量计算第二个线程在 UI 上更新进度指示器(使用 lock() 和 unlock() 方法)

在第一个线程结束时:

从数据库中删除项目,删除所有组件并重新添加(启用)。这样可以保证刷新表数据。

它工作得很好,但是当处理一个长任务时,UI 不会刷新并且表格还被禁用。

任何人都可以帮助我吗?

非常感谢

4

2 回答 2

1

https://vaadin.com/forum#!/thread/231272

简而言之 - 在 Vaadin 6.0 和 7.0 中,您不能从非请求线程将更改从服务器“推送”到浏览器。(有 v6 的插件,但 v7.0 没有)

在 Vaadin 7.1(尚未发布)中,这是可能的。有关更多详细信息,请参阅https://vaadin.com/wiki/-/wiki/Main/Enabling+server+push

于 2013-04-30T14:04:32.783 回答
1

您可以使用像 ProgressIndicator 这样定期刷新的组件。线程完成后禁用它。这对我行得通。

于 2013-05-02T12:20:29.263 回答