我希望display.timerExec(int,Runnable)与display.asyncExec(Runnable)大致相同,但具有指定的延迟.但是看起来display.timerExec只能在GUI线程上执行,因为它的第一行是对checkDevice()的调用.如果您没有在GUI线程中运行,则会引发异常.
任何人都可以建议使用display.asyncExec(),但执行前有延迟吗?
解决方法
您可以先使用asyncExec切换到GUI线程,然后使用timerExec安排计时器操作.这两种方法的相似之处在于它们都执行某些操作,但asyncExec只切换线程,timeExec只调度GUI线程的操作.
display.asyncExec(() -> display.timerExec(100,() -> doThings()));
这使用lambda表达式,在Java 8中引入.
使用Java 7或更早版本,必须使用以下匿名类编写它:
display.asyncExec(new Runnable() { public void run() { display.timerExec(100,new Runnable() { public void run() { doThings(); } }); } });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。