显然,所有 Eclipse/SWT 管理繁忙鼠标指示器的方式都是
BusyIndicator.showWhile(Runnable synchronousStuffToDo)
但是,我有一个从根本上面向事件的项目,其中“要做的事情”不会发生在连续的执行行中:一个动作被排序,一个持续回调被提供给执行管理器。因此,我没有什么有意义的东西可以放入该synchronousStuffToDo
可运行文件中。
是否有另一种异步操作繁忙指示器的方法,无论多么低级和笨拙,但与平台无关,这意味着两个单独的方法调用,“激活它”和“停用它”?
我应该补充ProgressMonitorDialog
这个问题,因为它似乎遇到了同样的问题。是的,在该ProgressMonitorDialog#run
方法中,内部事件循环将被旋转,但 SWT 事件循环只是我的执行管理器之一,因此链仍然会中断。显然,如果没有这个类,我什至无法显示进度监视器,除非我从较低级别的原语重新实现。