gpt4 book ai didi

swt - Display.asyncExec 与 Display.timerExec

转载 作者:行者123 更新时间:2023-12-05 00:35:16 29 4
gpt4 key购买 nike

我希望 Display.timerExec(int,Runnable)Display.asyncExec(Runnable) 大致相同但有指定的延迟。然而,似乎Display.timerExec只能在 GUI 线程上执行,因为它的第一行是对 checkDevice() 的调用。 .如果您不在 GUI 线程中运行,这将引发异常。

任何人都可以建议使用 Display.asyncExec() 的方法但是在执行之前有延迟?

最佳答案

你可以先用 asyncExec 切换到 GUI 线程,然后使用 timerExec 安排一个计时器操作.这两种方法的相似之处在于它们都执行一些操作,但是 asyncExec只切换线程,timeExec只为 GUI 线程安排一个 Action 。

display.asyncExec(() -> display.timerExec(100, () -> doThings()));

这使用了 Java 8 中引入的 lambda 表达式。

使用 Java 7 或更早版本,必须使用匿名类编写它,如下所示:

display.asyncExec(new Runnable() {
public void run() {
display.timerExec(100, new Runnable() {
public void run() {
doThings();
}
});
}
});

关于swt - Display.asyncExec 与 Display.timerExec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9622890/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com