- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的代码:
Display.getCurrent().asyncExec(new Runnable() {
public void run() {
try {
Event e1 = new Event();
e1.type = EVT_CONNECTING;
for (Listener listener : listeners) {
listener.handleEvent(e1);
}
database = new Database(cp.getName(), cp.getConnection());
Event e2 = new Event();
e2.type = EVT_CONNECT_SUCCESS;
for (Listener listener : listeners) {
listener.handleEvent(e2);
}
} catch (Exception ex) {
log.error(ex.getMessage(), ex);
Event e = new Event();
e.text = ex.getMessage();
e.type = EVT_CONNECT_FAILD;
for (Listener listener : listeners) {
listener.handleEvent(e);
}
}
}
});
Runnable
开始运行时,用户界面失去响应。为什么?
最佳答案
您正在 UI 线程上运行此数据库连接 Runnable - 这意味着您正在使 UI 线程无法处理任何其他可能导致它绘制、响应点击事件等的消息。所以是的,当您运行时此数据库连接作业,您的 UI 将无法执行任何其他操作,并且 UI 将变得无响应。
你可能做 而不是 想在 UI 线程上运行这个数据库连接作业,你可能想在一个简单的后台线程中完成,然后在数据库连接作业完成后使用 Display#asyncExec
将结果发布回 UI 线程完成的。
关于swt - Display.getCurrent().asyncExec 不能并行运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6994720/
我试图在阅读 Excel 文件时显示进度。我共享一个包含最大行号和最后读取的行号的对象。每 150 行,我将值保存在对象中,然后将其等待,然后停止读取,直到对象解锁。 在我的对话框窗口中,我尝试使用带
有一个“下一个”按钮,当我在选择按钮的情况下按下键盘回车键时,按钮的 widgetSelected 事件被一次又一次地重复调用,然后执行超快的下一步。这正是我想要的行为,但只发生在键盘输入键时。 我希
我正在尝试使用 Display.asyncExec() 方法在生成 SWT 列表小部件时将状态更新打印到它们,而不是在程序完成时将更新转储到列表中。我不断收到 java.lang.NullPointe
这是我的代码: Display.getCurrent().asyncExec(new Runnable() { public void run() {
我有很多重复行的代码,如下所示。如何将此作为方法? Display.getDefault().asyncExec(new Runnable() { @Override public v
我正在使用 eclipse 的作业 API 将大任务作为作业运行,一旦任务完成,我将 boolean 变量设置为 true,如果该变量为 true,我将在 UI 线程中执行 WizardDialog。
我希望 Display.timerExec(int,Runnable)与 Display.asyncExec(Runnable) 大致相同但有指定的延迟。然而,似乎Display.timerExec只
即使将所有 SWT 代码包装在“Display.getDefault().asyncExec”中,我也无法更新我的 UI。 假设我有一个监听器,称为单击一个按钮。 Listener enterlisn
我正在编写 Eclipse 插件,经常遇到这样的情况:正在运行的作业需要暂停一小会儿,在 UI 线程上异步运行某些内容,然后恢复。 所以我的代码通常看起来像这样: Display display =
在我的 SWT GUI 中,我想要一个按钮来启 Action 业,并在运行该作业时更新一个文本框,以显示该作业的事件日志。但是,直到 asyncExec() 调用结束后,我的文本框才会更新。在下面的示
我正在使用 Eclipse RCP 和 Swing 开发一个项目。我看到两对方法 invokeLater()/invokeAndWait() 和 asyncExec()/syncExec() 被大量使
我有一个使用 SWT 作为工具包的 Java 应用程序,我已经厌倦了更新 GUI 元素所需的所有丑陋的样板代码。 只是为了将禁用的按钮设置为启用,我必须经历这样的事情: shell.getDispla
我有一个简单的 viewPart,它提供了一些文本字段来输入 selenium 测试的参数。填写这些字段后,用户可以开始测试,大约。需要运行 30-45 分钟。我希望我的 GUI 在此测试期间保持活跃
我的 Eclipse 工作台在抛出错误后关闭: Throwable during asyncExec Malformed class name 附上截图。 错误如下 !ENTRY org.scala-
有没有办法等待所有通过 asyncExec(...) 提交到 SWT UI 线程的 Runnable 完成? 背景: 我有一个长时间运行的操作,其中包括触发事件,这些事件又通过 Display 的 a
我是一名优秀的程序员,十分优秀!