1

我有一个 RAP (2.3.1) 应用程序,用户可以在其中单击一个按钮,面板会自行更新。但是,如果用户太快地多次单击按钮(或者网络/更新在服务器上花费的时间更长),应用程序有时会崩溃或出现“错误的线程访问”错误,我猜这是按钮的选择处理程序是由于多次点击而在多个线程上运行。更新本身是更新 GUI 元素的串行过程(即,没有 asyncExec 或其他东西)。

我希望 RAP 序列化对用户会话的访问,但显然它没有。是否有需要更改的设置,或者我必须手动同步应用程序中的事件处理程序(或所有事件处理程序)?

4

1 回答 1

2

RAP 中的 UI 请求是同步的(参见此处)并保证在同一个 UI 线程中执行。

非法线程访问不是你只要过快点击按钮就可以引起的。问题一定出在选择监听器触发的代码中。你能发布一个最小的片段来重现这个问题吗?

于 2015-05-01T09:56:29.743 回答