multithreading - 如何将 Eclipse RCP TableView 绑定(bind)到其他线程数据

标签 multithreading data-binding eclipse-plugin eclipse-rcp

我刚刚开始使用 Eclipse RCP。
我使用 TableViewer 和 WritableList 创建了 Eclipse RCP View 以从其他线程获取数据。
但我看不到任何变化。我只需要显示其他线程正在管理的 List 的内容。

public class View extends ViewPart {
private TableViewer viewer; 
private WritableList input;

我也可以得到错误,
org.eclipse.core.runtime.AssertionFailedException: assertion failed: Getter called outside realm of observable org.eclipse.core.databinding.observable.list.WritableList

我知道什么是 UI 线程。我只是不知道怎么写。请帮忙举个例子。

更新。没有解决,因为时间不够,缺少好的和重点突出的教程。

最佳答案

我的代码也收到了此错误消息。
数据绑定(bind) observables (WritableList, WritableValue...) 继承自 ChangeManager ,它提供 ChangeManager#getRealm该领域有Realm#exec .在提供给 exec 的可运行文件内,操作在正确的线程中运行。

此行导致错误(Getter 称为可观察的外部领域):

WritableValue value = getEditor().getWritableValue();
System.out.println(((RcpEditorModel) value.getValue()).getNumber());

这防止了异常:
WritableValue value = getEditor().getWritableValue();
value.getRealm().exec(() -> System.out.println(((RcpEditorModel) value.getValue()).getNumber()));
WritableList 也是如此。因为它也继承自 ChangeManager .

关于multithreading - 如何将 Eclipse RCP TableView 绑定(bind)到其他线程数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5308898/

相关文章:

maven - Tycho 无法从我自己的纯 Maven 依赖项的包装器中解析包

java - 主线程和当前线程

c# - Interlocked.Exchange 说明

javascript - 如何将可见绑定(bind)与单选按钮可观察参数一起使用?

data-binding - 类型推断失败 : Not enough information to infer parameter Please specify it explicitly

javascript - Polymer通过javascript字符串绑定(bind)数据?

java - 将 commons-collections 更改为 3.2.2 时构建 rcp 应用程序显示未找到 JavaSE

java - 找不到org.eclipse.jdt.core.dom.InfixExpression源

java - 由其他线程更新的对象仅对另一个线程部分可见

c# - Task.WaitAny 接受 Task<T> 而不是 Task [ ]